A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Bancos de Dados – SQL – parte 1 Ceça. Ceça Moraes 2 Conteúdo Introdução Histórico Componentes DDL – Criando tabelas.

Apresentações semelhantes


Apresentação em tema: "Bancos de Dados – SQL – parte 1 Ceça. Ceça Moraes 2 Conteúdo Introdução Histórico Componentes DDL – Criando tabelas."— Transcrição da apresentação:

1 Bancos de Dados – SQL – parte 1 Ceça

2 Ceça Moraes 2 Conteúdo Introdução Histórico Componentes DDL – Criando tabelas

3 Ceça Moraes 3 Introdução Linguagem padrão completa de consulta e manipulação de dados em BDs relacionais Largamente implementada no mercado Desenvolvida pela IBM – Início da década de 70 – Implementada pela primeira vez em um protótipo (Sistema R) – Reimplementada depois em muitos produtos da IBM e outros fornecedores

4 Ceça Moraes 4 Componentes Uma DDL para definição do esquema da base de dados Uma DML para programação de consultas e transações que inserem,removem e alteram linhas de tabelas SQL pode ser embutida em linguagens de programação de 3ª geração (COBOL, C, Java…) estendendo-as para a manipulação de banco de dados Um padrão para comunicação cliente/servidor (ODBC - open database connectivity)

5 Ceça Moraes 5 DDL – Definição de Estrutura SQL oferece três instruções para definição do esquema do banco de dados: Create Table – Define a estrutura de uma tabela, suas restrições de integridade e cria a tabela vazia (sem linhas) Drop Table – elimina a tabela da base de dados Alter Table – permite modificar a definição de uma tabela

6 Ceça Moraes 6 Criando Tabelas Domínios Um domínio é uma coleção de valores válidos; O padrão-SQL2 aceita diversos tipos de restrições de domínio: – Char/Varchar – Integer – Smallint – Numeric – Real, double precision – Float – Date – Time – Datetime – Null/Not null

7 Ceça Moraes 7 Criando Tabelas CREATE TABLE O comando CREATE TABLE cria tabelas e obedece a seguinte forma: CREATE TABLE ( ), ( );

8 Ceça Moraes 8 Exemplo Fornecedor cod nome status cidadecgc Peca codnome cor cidade peso cod Embarque qtddata NN

9 Ceça Moraes 9 Criando Tabelas CREATE TABLE Peca CREATE TABLE Peca (CodPeca CHAR(4) NOT NULL, NomePeca CHAR(50) NOT NULL, CorPeca CHAR(10) NULL, PesoPeca INTEGER NULL, CidadePeca CHAR(40) NULL, PRIMARY KEY (CodPeca)) ENGINE = INNODB MYSQL

10 Ceça Moraes 10 Criando Tabelas CREATE TABLE Fornecedor CREATE TABLE Fornecedor (CodFornec CHAR(4) NOT NULL, NomeFornec CHAR(50) NOT NULL, StatusFornec INTEGER, CidadeFornec CHAR(40), CGC CHAR(14) NULL Unique, PRIMARY KEY (CodFornec)) ENGINE = INNODB MYSQL

11 11 Criando Tabelas CREATE TABLE Embarque CREATE TABLE Embarque (CodPeca CHAR(4) NOT NULL, CodFornec CHAR(4) NOT NULL, QtdeEmbarc INTEGER NOT NULL, PRIMARY KEY (CodPeca,CodFornec), FOREIGN KEY (CodPeca) REFERENCES Peca (CodPeca), FOREIGN KEY (CodFornec) REFERENCES Fornecedor (CodFornec)) ENGINE = INNODB MYSQL

12 Ceça Moraes 12 Observações A cláusula REFERENCES estabelece a restrição de integridade referencial entre as tabelas Só podemos incluir essas restrições se as tabelas referenciadas já existirem Podemos criar tabelas sem a cláusula REFERENCES e depois utilizar o comando ALTER TABLE para realizar a restrição

13 Ceça Moraes 13 Chaves Especificação de chaves: – primária ( PRIMARY KEY ) – estrangeira ( FOREIGN KEY ) – alternativa ( Unique ) Praticamente todos SGBDS comerciais incluem a definição de chaves

14 Ceça Moraes 14 Integridade Referencial Deleção Caso nada seja especificado na definição da chave estrangeira... – Uma linha que contenha uma chave primária referenciada como chave estrangeira não pode ser excluída (regra RESTRICT) Pode ser definida a propagação da exclusão da linha para as linhas que a referenciam

15 15 Integridade Referencial Cláusula ON DELETE CREATE TABLE Embarque (CodPeca CHAR(4) NOT NULL, CodFornec CHAR(4) NOT NULL, QtdeEmbarc INTEGER NOT NULL, PRIMARY KEY (CodPeca,CodFornec), FOREIGN KEY (CodPeca) REFERENCES Peca (CodPeca) ON DELETE CASCADE, FOREIGN KEY (CodFornec) REFERENCES Fornecedor (CodFornec) ON DELETE CASCADE)

16 Ceça Moraes 16 Integridade Referencial Cláusula ON DELETE Sintaxe completa FOREIGN KEY... REFERENCES... ON DELETE {CASCADE|SET NULL|RESTRICT} SET NULL – Especifica que as chaves estrangeiras que referenciam a linha excluída devem ser tornadas vazias

17 Ceça Moraes 17 Integridade Referencial Cláusula ON DELETE RESTRICT (default) – Especifica que uma linha não pode ser excluída caso existam chaves estrangeiras que a referenciem CASCADE – Propaga a exclusão da chave primária para as linhas que a referenciam como estrangeira

18 Ceça Moraes 18 Integridade Referencial Cláusula ON UPDATE Sintaxe completa FOREIGN KEY... REFERENCES... ON UPDATE {CASCADE|SET NULL|RESTRICT} CASCADE – Alteração da chave primária é propagada para as chaves estrangeiras que a referenciam SET NULL – Chaves estrangeiras que referenciam a linha alterada devem ser tornadas vazias RESTRICT – uma chave primária não pode ser alterada, caso existam chaves estrangeiras que a referenciem

19 Ceça Moraes 19 Removendo Tabelas DROP TABLE Para eliminar completamente uma tabela (vazia ou não) da base de dados, usa-se a instrução: – DROP TABLE Embarque o SQL/2 inclui cláusulas RESTRICT e CASCADE (obrigatória) que informam se a exclusão deve ser propagada ou não para objetos definidos com base na tabela (visões) Exemplo – DROP TABLE Embarque RESTRICT – Exclui a tabela somente se não existirem visões definidas com base na tabela

20 Ceça Moraes 20 Modificando Tabelas ALTER TABLE A instrução ALTER TABLE serve para modificar a estrutura original da tabela. Nem todas modificações são permitidas Primeiros SGBDs e SQL/1 somente permitiam adicionar colunas Exemplo: adicionar colunas a tabelas – ALTER TABLE Embarque ADD DataEmbarq DATE – Para cada linha existente será criada uma instância de DataEmbarq vazia

21 Ceça Moraes 21 Observações ALTER TABLE A instrução adiciona uma nova coluna com o valor vazio para todas linhas Os valores para as diversas linhas devem ser adicionadas através de instruções da DML ( UPDATE ) Não pode ser especificada a cláusula NOT NULL já que a coluna é criada com o valor vazio

22 Ceça Moraes 22 Modificações de Chaves ALTER TABLE ALTER TABLE permite incluir ou excluir restrições de chave – ALTER TABLE Representante DROP PRIMARY KEY Para excluir uma chave estrangeira é necessário que ela tenha recebido um nome quando de sua definição – ALTER TABLE Representante ADD FOREIGN KEY (CodFilial) REFERENCES Filial (CodFilial) – ALTER TABLE Representantes DROP FOREIGN KEY (CodFilial) REFERENCES Filial (CodFilial)

23 Ceça Moraes 23 Observações ALTER TABLE com definição de chaves permite separar a DDL em duas seções – Primeira seção contém apenas os CREATE TABLE com a estrutura da base de dados – Segunda seção contém as restrições de chave através de instruções ALTER TABLE Sintaxe para chaves vista até aqui está saindo de uso A tendência em SQL/2 é tratar de forma uniforme todas restrições de integridade (chave primária, chave única, chave estrangeira, …) – São chamados de CONSTRAINT

24 Ceça Moraes 24 Restrições de Integridade CONSTRAINT CREATE TABLE Embarque (CodFornec CHAR(4) not null, CodPeca CHAR(4) not null, Quant INTEGER not null, DataEmbarq DATE, CONSTRAINT PK_EMBARQ PRIMARY KEY (CodFornec,CodPeca))

25 Ceça Moraes 25 Restrições de Integridade CONSTRAINT ALTER TABLE Embarque ADD CONSTRAINT FK_EMBARQ_RELATION_PECA FOREIGN KEY (CodPeca) REFERENCES Peca (CodPeca)

26 Ceça Moraes 26 Restrições de Integridade CONSTRAINT ALTER TABLE Embarque ADD CONSTRAINT FK_EMBARQ_RELATION_FORNECEDOR FOREIGN KEY (CodFornec) REFERENCES Fornecedor (CodFornec)

27 Ceça Moraes 27 Referências Date – Capítulo 4 Rob & Coronel – Capítulos 7 e 8

28 Ceça Moraes 28 Exercício Instalar o BR Office Executar os comandos SQL dos slides a seguir em um banco de dados MS Access ou BR Office

29 Ceça Moraes 29 Exercício 1.Criação da tabela Peca: CREATE TABLE Peca (CodPeca CHAR(4) NOT NULL, NomePeca CHAR(50) NOT NULL, CorPeca CHAR(10) NULL, PesoPeca INTEGER NULL, CidadePeca CHAR(40) NULL, PRIMARY KEY (CodPeca))

30 Ceça Moraes 30 Exercício 2.Criação da tabela Fornecedor: CREATE TABLE Fornecedor (CodFornec CHAR(4) NOT NULL, NomeFornec CHAR(50) NOT NULL, StatusFornec INTEGER, CidadeFornec CHAR(40), CGC CHAR(14) NULL Unique, PRIMARY KEY (CodFornec))

31 Ceça Moraes 31 Exercício 3.Criação da tabela Embarque: CREATE TABLE Embarque (CodPeca CHAR(4) NOT NULL, CodFornec CHAR(4) NOT NULL, QtdeEmbarc INTEGER NOT NULL, PRIMARY KEY (CodPeca,CodFornec), FOREIGN KEY (CodPeca) REFERENCES Peca (CodPeca), FOREIGN KEY (CodFornec) REFERENCES Fornecedor (CodFornec))

32 Ceça Moraes 32 Exercício 4.Alteração da tabela Embarque: – ALTER TABLE Embarque ADD DataEmbarq DATE 5.Remoção da tabela Embarque: – DROP TABLE Embarque

33 Ceça Moraes 33 Exercício 6.Criação da tabela Embarque (CONSTRAINT): CREATE TABLE Embarque (CodFornec CHAR(4) not null, CodPeca CHAR(4) not null, Quant INTEGER not null, DataEmbarq DATE, CONSTRAINT PK_EMBARQ PRIMARY KEY (CodFornec,CodPeca))

34 Ceça Moraes 34 Exercício 7.Criação do relacionamento Embarque-Peca (CONSTRAINT): ALTER TABLE Embarque ADD CONSTRAINT FK_EMBARQ_RELATION_PECA FOREIGN KEY (CodPeca) REFERENCES Peca (CodPeca)

35 Ceça Moraes 35 Exercício 8.Criação do relacionamento Embarque- Fornecedor (CONSTRAINT): ALTER TABLE Embarque ADD CONSTRAINT FK_EMBARQ_RELATION_FORNECEDOR FOREIGN KEY (CodFornec) REFERENCES Fornecedor (CodFornec)


Carregar ppt "Bancos de Dados – SQL – parte 1 Ceça. Ceça Moraes 2 Conteúdo Introdução Histórico Componentes DDL – Criando tabelas."

Apresentações semelhantes


Anúncios Google