Bancos de Dados – SQL – parte 1

Slides:



Advertisements
Apresentações semelhantes
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Advertisements

Banco de Dados Prof. Antonio.
Banco de Dados I Aula 20.
Banco de Dados Aula 10 – SQL - DDL
SQL Renata Viegas.
SQL Structured Query Language
MODELO RELACIONAL Transparências baseadas no capítulo 3 do livro de KORTH e SILBERCHATZ e capítulo 7 do livro de ELMASRI e NAVATHE Juliana Amaral e Rodrigo.
Prof.: Bruno Rafael de Oliveira Rodrigues
Banco de Dados Prof.: Bruno Rafael de Oliveira Rodrigues.
Prof.: Bruno Rafael de Oliveira Rodrigues
Projeto e Organização de BD
Modelo Relacional + SQL
Visões Marilde Santos.
Maurício Edgar Stivanello
SGBD.
Sistema Gerenciador de Banco de Dados SGBD
Sistema Gerenciador de Banco de Dados SGBD
Restrições de Integridade
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
1 Objetos Relacionados a um banco de dados. 2 Introdução Visual Basic dispõe de um conjunto de objetos, que através de suas propriedades e métodos, nos.
UML NO PROJETO LÓGICO DE BANCO DE DADOS: 1ª PARTE
Profa. Aline Vasconcelos
Introdução à Engenharia da Computação
INSTITUTO FEDERAL FARROUPILHA
FRB - Maio 2002MCS9–1 Regras (Restrições) de Integridade Sistemas comerciais relacionais são muito finos de restrições para garantir a qualidade dos dados.
Sistemas de Informação
SQL Structured Query Language
Linguagem de Banco de Dados - SQL
Banco de dados Profª Kelly Medeiros.
Banco de Dados Aplicado ao Desenvolvimento de Software
Sistema de Gerenciamento de Pessoas e Projetos
Vânia Maria Ponte Vidal
Tipos de Linguagens do Banco de Dados
EXERCÍCIOS PARA GUARDA-REDES
SQL Server 2012 Integridade de Dados
Prof. Alessandro Gonçalves
Banco de Dados PostgreSQL.
Análise e Projeto de Sistemas
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Desenvolvendo um script SQL
Linguagem SQL.
Rafael Lucio, Desenvolvedor Jr Padrão Informática e Assessor de TI Secretaria Municipal da Saúde;
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Banco de dados.
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson.com.br “Está conosco o Senhor dos Exércitos”
Linguagem de Definição de Dados
Comandos SQL.
Definições de Esquemas, Restrições básicas e buscas
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
SEGUNDA FASE / S2B MIC PERNAMBUCO
SCC Bancos de Dados e Suas Aplicações
Contatos Gladimir Catarino
Curso de Análise e Desenvolvimento de Sistemas Projeto de Banco de Dados Marcelo da Silveira Siedler.
Banco de Dados I I Comandos SQL
©Silberschatz, Korth and Sudarshan (modificado)6.1.1Database System Concepts Capítulo 6: Integridade e Segurança Restrições ao Domínio Integridade Referencial.
SQL (Structured Query Language)
Modelo Relacional Marcelo Mendes Manaus – 2015.
Professor Me. Jeferson Bussula Pinheiro.
Daniel Paulo Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados.
Banco de Dados Maria Augusta (Magu).
Linguagem de definição de dados - SQL
Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Modelo Relacional, Chaves e Relacionamentos
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 4 SQL básica.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Kelyn Schenatto. Definição Linguagem de Consulta Estruturada (Structured Query Language); Desenvolvida inicialmente nos anos 70 nos laboratórios da IBM.
Banco de Dados para Redes– Aula 03 Prof. Me. Ronnison Reges Vidal.
SQL (Structure Query Language)
Transcrição da apresentação:

Bancos de Dados – SQL – parte 1 Ceça

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

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 Ceça Moraes

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) Ceça Moraes

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 Ceça Moraes

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 Ceça Moraes

Criando Tabelas CREATE TABLE O comando CREATE TABLE cria tabelas e obedece a seguinte forma: CREATE TABLE <tabela> (<descrição das colunas>), (<descrição das chaves>); Ceça Moraes

Exemplo Peca cod nome cor cidade peso Fornecedor cod nome status cgc Embarque qtd data N N Ceça Moraes

Criando Tabelas 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 Ceça Moraes

Criando Tabelas 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 Ceça Moraes

Criando Tabelas 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

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 Ceça Moraes

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

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 Ceça Moraes

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)

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 Ceça Moraes

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 Ceça Moraes

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 Ceça Moraes

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 Ceça Moraes

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 Ceça Moraes

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 Ceça Moraes

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) Ceça Moraes

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 Ceça Moraes

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)) Ceça Moraes

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

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

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

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

Exercício 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)) Ceça Moraes

Exercício 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)) Ceça Moraes

Exercício 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)) Ceça Moraes

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

Exercício 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)) Ceça Moraes

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

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