UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 1 – Linguagem SQL Linguagem de definição de dados (DDL) DISCIPLINA: Banco de Dados II PROF.: ROMULO VANZIN Banco de Dados II Estudar as características das Linguagens de consulta (SQL). Capacitar o aluno a implementar soluções utilizando bancos de dados relacionais; Proporcionar ao aluno familiarização com as diversas tecnologias existentes para banco de dados, de forma a capacitá-lo a selecionar uma alternativa adequada à situação. Banco de Dados II – Avaliação ? Banco de Dados II – Bibliografia Básica ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados. 4. Ed. São Paulo: Pearson Education, 2005. SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de Banco de Dados. 5. Ed. Rio de Janeiro: Campus, 2006. AULA 1 Linguagem SQL OBJETIVOS O objetivo desta aula da disciplina de Banco de Dados II, é apresentar os conceitos iniciais sobre Linguagem SQL. Será demonstrada uma visão geral sobre os conceitos envolvendo a Linguagem SQL mais especificamente DDL. Ao final da aula, espera-se que os alunos tenham compreendido a teoria sobre Linguagem SQL. TÓPICOS A SEREM ABORDADOS Introdução Banco de Dados Relacional Introdução a Structure Query Linguage (Linguagem de Consulta Estruturada) Linguagem de Definição de Dados - DDL INTRODUÇÃO Os Bancos de Dados e os sistemas de Bancos de Dados se tornaram componentes essenciais no cotidiano da sociedade moderna. No decorrer do dia, a maioria de nós se depara com atividades que envolvem alguma interação com os BD. Por exemplo, se formos ao banco para efetuarmos um depósito ou retirar dinheiro, se fizermos reservas em um hotel ou se fizermos uma consulta no sistema da biblioteca de nossa universidade, muito provavelmente essas atividades envolverão uma pessoa ou um programa de computador que acessará um BD. Banco de Dados Relacional O Modelo Relacional foi introduzido por Ted Codd, da IBM Research, em 1970(Codd 1970). Característica deste modelo foi a simplicidade (conceitos de uma relação matemática), tabela de valores. A arquitetura de um banco de dados relacional pode ser descrita de maneira informal ou formal. Na descrição informal estamos preocupados com aspectos práticos da utilização e usamos os termos tabela, linha e coluna. Na descrição formal estamos preocupados com a semântica formal do modelo e usamos termos como relação (tabela), tupla(linhas) e atributo(coluna). Banco de Dados Relacional TABELAS ou ENTIDADES Todos os dados de um banco de dados relacional (BDR) são armazenados em tabelas. Uma tabela é uma simples estrutura de linhas e colunas. Em uma tabela, cada linha contém um mesmo conjunto de colunas. Em um banco de dados podem existir uma ou centenas de tabelas. As tabelas associam-se entre si através de regras de relacionamentos, estas regras consistem em associar um ou vários atributo de uma tabela com um ou vários atributos de outra tabela. Banco de Dados Relacional REGISTROS OU TUPLAS Cada linha formada por uma lista ordenada de colunas representa um registro, ou tupla. Os registros não precisam conter informações em todas as colunas, podendo assumir valores nulos quando assim se fizer necessário. Banco de Dados Relacional COLUNAS As colunas de uma tabela são também chamadas de atributos. Ex.: O campo Nome, ou endereço de uma tabela de um BD relacional. Banco de Dados Relacional CHAVES As tabelas relacionam-se umas as outras através de chaves. Uma chave é um conjunto de um ou mais atributos que determinam a unicidade de cada registro. Chaves Primárias - (PK - Primary Key) é a chave que identifica cada registro dando-lhe unicidade. A chave primária nunca se repetirá. Chaves Estrangeiras - (FK - Foreign Key) é a chave formada através de um relacionamento com a chave primária de outra tabela. Define um relacionamento entre as tabelas e pode ocorrer repetidas vezes. Caso a chave primária seja composta na origem, a chave estrangeira também o será. Banco de Dados Relacional EXEMPLO SQL - Structured Query Language É uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características originais do SQL foram inspiradas na álgebra relacional. Embora o SQL tenha sido originalmente criado pela IBM, rapidamente surgiram vários "dialetos" desenvolvidos por outros produtores. Essa expansão levou à necessidade de ser criado e adaptado um padrão para a linguagem. Esta tarefa foi realizada pela American National Standards Institute (ANSI) em 1986 e ISO em 1987. SQL - Structured Query Language O SQL foi revisto em 1992 e a esta versão foi dado o nome de SQL-92. Foi revisto novamente em 1999 e 2003 para se tornar SQL:1999 (SQL3) e SQL:2003, respectivamente. O SQL:1999 usa expressões regulares de emparelhamento, queries recursivas e gatilhos (triggers). Também foi feita uma adição controversa de tipos nãoescalados e algumas características de orientação a objeto. O SQL:2003 introduz características relacionadas ao XML, sequências padronizadas e colunas com valores de autogeneralização (inclusive colunas-identidade). SQL - Structured Query Language Dividida em partes: DDL – (Data Definition Language - Linguagem de Definição de Dados) Comandos para a definição (criação), a modificação e a remoção de relações. DML - (Data Manipulation Language Linguagem de manipulação de dados) Comandos - para Inserção, Remoção e Atualização de tuplas no Banco de Dados. DDL – Linguagem de Definição de Dados Uma DDL permite ao utilizador definir tabelas novas e elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias no DDL. Alguns comandos: Create, Drop e Alter DDL – Linguagem de Definição de Dados Declarações Create Create - utilizada para construir um novo banco de dados, tabela, índice ou consulta armazenada. Uma declaração CREATE, em SQL, cria um objeto dentro do Sistema de Gerenciamento de Banco de Dados Relacional (SGBDR). Os tipos de objetos que podem ser criados dependem de qual SGBDR está sendo utilizado, porém a maioria suporta a criação de tabelas, índices, usuários e banco de dados. DDL – Linguagem de Definição de Dados Create Database Sintaxe: create database “<caminho...\banco.fdb>”; Criar um Banco de Dados Firebird(); Ex.: create database “C:\AULA1.FDB”; DDL – Linguagem de Definição de Dados CREATE DATABASE 'C:\AULA1.FDB' USER 'SYSDBA' PASSWORD 'masterkey'; DDL – Linguagem de Definição de Dados CONNECT O comando CONNECT realiza a conexão com um arquivo físico de banco de dados criado com o comando CREATE DATABASE. Ex.: CONNECT 'C:\AULA1.FDB' USER 'SYSDBA' PASSWORD 'masterkey'; DDL – Linguagem de Definição de Dados Create Table Talvez o comando mais comum da declaração CREATE seja o comando CREATE TABLE. A sintaxe típica é: CREATE TABLE [nome da tabela] ([definições de colunas]) [parâmetros da tabela] DDL – Linguagem de Definição de Dados Create Table É com este comando, que criamos as tabelas. Exemplo: CREATE TABLE ALUNO ( MATRICULA INTEGER, NOME VARCHAR(40), ENDERECO VARCHAR(60), TELEFONE CHAR(8), CIDADE VARCHAR(30)); COMMIT; DDL – Linguagem de Definição de Dados Create Table create table é o nome do comando; Aluno é o nome da tabela; e entre parênteses irão os atributos da tabela; Os atributos são uma lista separada por “,”; Cada atributo é composto obrigatoriamente de nome e tipo; DDL – Linguagem de Definição de Dados Show Table O comando SHOW TABLE mostra a estrutura (campos, tipo de dados, etc) de uma tabela. Ex.: SHOW TABLE ALUNO; DDL – Linguagem de Definição de Dados Show Tables O comando SHOW TABLES é responsável por mostrar um listagem com as tabelas de um banco de dados. Ex.: SHOW TABLES; DDL – Linguagem de Definição de Dados Alter Table O comando Alter Table pode alterar a estrutura de uma tabela. Vamos alterar a tabela Aluno adicionando uma coluna: ALTER TABLE ALUNO ADD CPF VARCHAR(14); COMMIT; DDL – Linguagem de Definição de Dados Alter Table Modificar o tipo ou tamanho do campo: ALTER TABLE ALUNO ALTER CPF TYPE CHAR(14); Excluir um campo: ALTER TABLE ALUNO DROP CPF; DDL – Linguagem de Definição de Dados Drop Table Excluir uma tabela: DROP TABLE ALUNO; EXERCÍCIO Defina os comandos SQL para: 1 - Criar uma nova base de dados chamada locadora; 2 – Criar as seguintes tabelas na base de dados: cliente filmes cod_cliente varchar(20) cod_filme integer nome varchar(90) cod_categoria integer endereco varchar(120) descricao varchar(90) cidade varchar(50) valor numeric locacao cod_cliente varchar(20) cod_filme integer data_locacao date categorias cod_categoria integer descricao varchar(80) EXERCÍCIO Defina os comandos SQL para: 3 – Alterar o campo cod_cliente das tabelas para o tipo integer 4 – Adicionar na tabela locacao um campo para a data de devolucao do filme 5 – Excluir o campo cidade da tabela cliente 6 – Excluir a tabela categorias DÚVIDAS [email protected]