Contatos Gladimir Catarino

Slides:



Advertisements
Apresentações semelhantes
Tópicos em Banco de Dados
Advertisements

O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Banco de Dados Prof. Antonio.
Banco de Dados Prof. Antonio.
Banco de Dados I Aula 20.
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
SQL Renata Viegas.
SQL Structured Query Language
SQL Structured Query Language (continuação)
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
Modelo Relacional + SQL
Visões Marilde Santos.
Maurício Edgar Stivanello
SGBD.
SGBD.
Sistema Gerenciador de Banco de Dados SGBD
Sistema Gerenciador de Banco de Dados SGBD
Restrições de Integridade
Modelo Relacional parte 1
Introdução à Engenharia da Computação
SCC Bancos de Dados e Suas Aplicações
Material III-Bimestre Wagner Santos C. de Jesus
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.
SQL Structured Query Language
Linguagem de Banco de Dados - SQL
Bancos de Dados – SQL – parte 1
Banco de dados Profª Kelly Medeiros.
Banco de Dados Aplicado ao Desenvolvimento de Software
Design Patterns / Acesso ao banco de dados (java.sql)
Tipos de Linguagens do Banco de Dados
SQL Server 2012 Integridade de Dados
Banco de Dados PostgreSQL.
Desenvolvendo um script SQL
Linguagem SQL.
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
Baseado no material do Professor Raul Paradeda
Definições de Esquemas, Restrições básicas e buscas
Banco de Dados Aplicado ao Desenvolvimento de Software
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
SCC Bancos de Dados e Suas Aplicações
Curso de Análise e Desenvolvimento de Sistemas Projeto de Banco de Dados Marcelo da Silveira Siedler.
Banco de Dados I I Comandos SQL
Banco de dados 1 Modelagem de Dados Utilizando MER
Linguagem SQL Prof. Juliano.
©Silberschatz, Korth and Sudarshan (modificado)6.1.1Database System Concepts Capítulo 6: Integridade e Segurança Restrições ao Domínio Integridade Referencial.
Structured Query Language
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
SQL (Structured Query Language)
1 Introdução à Manipulação de Dados SQL – Structured Query Language  Tabela = Relação  DDL – Data Definition Language  Sub-conjunto do SQL que suporta.
Modelo Relacional Marcelo Mendes Manaus – 2015.
Arnaldo Rocha1995 BANCO DE DADOS Modelo Relacional.
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).
UCSal – Bacharelado em Informática
Introdução a Bancos de Dados (BD’s)
Linguagem de definição de dados - SQL
Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
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:

Contatos gladimir@gmail.com gladimircc @gladimircc Gladimir Catarino

Banco de Dados 1 2º Semestre Aula 07 Prof Banco de Dados 1 2º Semestre Aula 07 Prof. Gladimir Ceroni Catarino gladimir@gmail.com SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS

SQL - Introdução Padronizado pela indústria de informática. Chamado de padrão SQL(Structured Query Language) Usa uma combinação de construtores em álgebra relacional e cálculo relacional Embora o próprio nome se refira a SQL como uma linguagem de consulta, ela possui outros recursos

SQL - Introdução O padrão SQL define precisamente uma interface SQL para a definição de tabelas, para as operações sobre as mesmas (seleção, projeção, junção e outras) e para a definição de regras de integridade de bancos de dados A interface SQL é implementada em todos os sistemas de bancos de dados relacionais existentes A existência de padrões facilita a interoperabilidade

SQL - Introdução Um SGBD necessita possuir duas linguagens DDL (Data Definition Language) - Usada para definir os esquemas, atributos, visões, regras de integridade, índices, etc. DML (Data Manipulation Language) - Usada para se ter acesso aos dados armazenados no BD Exemplos de linguagens de consulta QUEL QBE SQL

SQL - Histórico A versão original de SQL foi desenvolvida pela IBM Originalmente chamada de SEQUEL Parte do projeto System R Tornou-se a linguagem padrão para SGBD’s relacionais Existem diversos padrões para SQL – ANSI-SQL (SQL-86) – IBM SQL (SQL-89) – ANSI/ISO SQL (SQL 92) – SQL-3 (SQL 99)

Partes do SQL SQL é dividido em diversas partes Linguagem de definição de dados (DDL) - proporciona comandos para a definição, exclusão e modificação de esquemas de relações e criação de índices Linguagem interativa de manipulação de dados (DML) – linguagem de consulta baseada na álgebra e no cálculo relacional de tuplas, incluindo inserção, exclusão e modificação de tuplas

Partes do SQL Definição de visões Autorização – definição de direitos de acesso a relações e visões Integridade – especificação de regras de integridade que os dados que serão armazenados deverão satisfazer Controle de transações – comandos para especificação de iniciação e finalização de transações

SQL - Domínios

SQL - Domínios

SQL - Domínios

SQL - Domínios

SQL - Domínios

SQL - Domínios

SQL - Domínios

Structured Query Language Comandos SQL Structured Query Language

Data Definition Language Comandos SQL - DDL Data Definition Language

Comandos SQL - DDL • Os comandos SQL para definição de dados são: CREATE DROP ALTER • SQL permite a criação de domínios CREATE DOMAIN nome_pessoa char(20); • No exemplo acima nome_pessoa poderá ser usado como domínio de um atributo qualquer

Comandos SQL - DDL • CREATE TABLE: especifica uma nova tabela (relação), dando o seu nome e especificando as colunas (atributos), cada uma com seu nome, tipo e restrições • Sintaxe: CREATE TABLE r (A1 D1, A2 D2, ..., AN DN, <regra de integridade1>, ..., <regra de integridadeK> ) • Onde r é o nome da relação (tabela), Ai é um nome de atributo e Di é o domínio do atributo Ai

Comandos SQL - DDL • As definições dos atributos têm o seguinte formato: atributo tipo [NOT NULL [UNIQUE]] [DEFAULT valor] • Onde: - atributo: nome do atributo que está sendo definido - tipo_dado: domínio do atributo - NOT NULL: expressa que o atributo não pode receber valores nulos - UNIQUE: indica que o atributo tem valor único na tabela. Qualquer tentativa de se introduzir uma linha na tabela contendo um valor igual ao do atributo será rejeitada. - DEFAULT valor: indica um valor a ser atribuído ao atributo caso não seja determinado um valor na inserção

Comandos SQL - DDL • Regras de integridade (constraints) - Integridade de chave • PRIMARY KEY (atributos chave) - Integridade referencial • FOREIGN KEY (atributos) REFERENCES tabela_base(atributos) - Integridade de domínio • CHECK (condição)

Comandos SQL - DDL CREATE TABLE empregado (nome VARCHAR(15) NOT NULL, matricula char(9) NOT NULL, dataNasc DATE, endereco VARCHAR(30), sexo CHAR, salario NUMERIC(10,2), supervisor CHAR(9), depto INT NOT NULL, PRIMARY KEY (matricula), CHECK (salario >= 0), FOREIGN KEY (supervisor) REFERENCES empregado(matricula), FOREIGN KEY (depto) REFERENCES departamento(codDep) );

Comandos SQL - DDL CREATE TABLE departamento (nomeDep VARCHAR(15) NOT NULL, codDep INT NOT NULL, gerente CHAR(9) NOT NULL, dataInicioGer DATE, PRIMARY KEY(codDep), UNIQUE (nomeDep), FOREIGN KEY (gerente) REFERENCES empregado(matricula));

Comandos SQL - DDL CREATE TABLE estudante (nome char(15) NOT NULL, idEstudante char(10) NOT NULL, nivel char(15) NOT NULL, PRIMARY KEY (idEstudante), CHECK (nivel IN ('Bacharelado', 'Mestrado', 'Doutorado')))

Comandos SQL - DDL • O valor NULL é um valor válido para todos os tipos em SQL, salvo se o tipo for definido como NOT NULL • Sabemos que uma chave primária não pode conter valores nulos e repetições - O SQL-89 obrigava os atributos da chave primária a serem declarados como NOT NULL e UNIQUE - SQL-92 já assume essas condições, sua declaração é redundante

Comandos SQL - DDL • Exercício: Defina as tabelas abaixo usando SQL FORNECEDOR (codigo, nome, cidade) VENDA (codForn, codPeca, quantidade, data) PECA (codPeca, nome, descricao) • É obrigatório que: - quantidade seja maior que zero - nome da peça não seja nulo

Comandos SQL - DDL CREATE TABLE Fornecedor ( codigo CHAR(10) NOT NULL, nome VARCHAR(50) NOT NULL, cidade VARCHAR(80), PRIMARY KEY(codigo));

Comandos SQL - DDL CREATE TABLE Peca ( codPeca CHAR(10) NOT NULL, nome VARCHAR(50) NOT NULL, descricao VARCHAR(100), PRIMARY KEY (codPeca));

Comandos SQL - DDL CREATE TABLE Venda ( codForn CHAR(10) NOT NULL, codPeca CHAR(10) NOT NULL, quantidade INT NOT NULL, data DATE NOT NULL, PRIMARY KEY (codForn, codPeca), FOREIGN KEY (codForn) REFERENCES Fornecedor(codigo), FOREIGN KEY (codPeca) REFERENCES Peca(codPeca), CHECK (quantidade > 0));

Comandos SQL - DDL • Chave estrangeira - É definida com a cláusula FOREIGN KEY CREATE TABLE Empregado ( matricula CHAR(9) NOT NULL, nome VARCHAR(15) NOT NULL, ... FOREIGN KEY supervisor CHAR(9) REFERENCES Empregado(matricula), FOREIGN KEY codDep INT NOT NULL REFERENCES Departamento(codigo), ...);

Comandos SQL - DDL • Uma cláusula FOREIGN KEY inclui regras de remoção / atualização: FOREIGN KEY (coluna) REFERENCES tabela [ON DELETE {RESTRICT|CASCADE|SET NULL| SET DEFAULT}] [ON UPDATE {RESTRICT|CASCADE|SET NULL| SET DEFAULT}] • Supondo que T2 tem uma chave estrangeira para T1, vejamos as cláusulas ON DELETE e ON UPDATE

Comandos SQL - DDL • ON DELETE RESTRICT: (default) significa que uma tentativa de se remover uma linha de T1 falhará se alguma linha em T2 combina com a chave CASCADE: remoção de uma linha de T1 implica em remoção de todas as linhas de T2 que combina com a chave de T1 SET NULL: remoção de T1 implica em colocar NULL em todos os atributos da chave estrangeira de cada linha de T2 que combina - SET DEFAULT: remoção de linha em T1 implica em colocar valores DEFAULT nos atributos da chave estrangeira de cada linha de T2 que combina

Comandos SQL - DDL • ON UPDATE RESTRICT: (default) update de um atributo de T1 falha se existem linhas em T2 combinando - CASCADE: update de atributo em T1 implica que linhas que combinam em T2 também serão Atualizadas SET NULL: update de T1 implica que valores da chave estrangeira em T2 nas linhas que combinam são postos para NULL - SET DEFAULT: update de T1 implica que valores da chave estrangeira de T2 nas linhas que combinam terão valores default aplicados

Comandos SQL - DDL • As restrições de integridade podem ter um nome e serem especificadas com a cláusula CONSTRAINT • Isto permite que possamos no futuro eliminar (DROP) ou alterar (ALTER) o constraint • O exemplo a seguir mostra o uso de CONSTRAINT, DEFAULT, ON DELETE e ON UPDATE

Comandos SQL - DDL CREATE TABLE empregado ( depto INT NOT NULL DEFAULT 1, CONSTRAINT empPK PRIMARY KEY(matricula), CONSTRAINT empSuperFK FOREIGN KEY(supervisor) REFERENCES empregado(matricula) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT deptoFK FOREIGN KEY (depto) REFERENCES departamento(codigo) ON DELETE SET DEFAULT ON UPDATE CASCADE);

Comandos SQL - DDL • ALTER TABLE - Permite que se altere os atributos de uma determinada tabela ou que se adicione novos atributos (evolução de esquemas) - Os novos atributos terão valores nulos em todas as linhas - Ao incluirmos uma coluna devemos especificar o seu tipo de dado, não podendo esta coluna ser NOT NULL

Comandos SQL - DDL • Sintaxe: • Exemplo: ALTER TABLE tabela_base ADD atributo tipo_dado • Exemplo: ALTER TABLE Peca ADD espessura INT

Comandos SQL - DDL • Podemos remover um atributo usando a sintaxe ALTER TABLE tabela_base DROP atributo [CASCADE|RESTRICT] • CASCADE: remove todas as restrições relativas ao atributo e visões que contêm o atributo • RESTRICT: não permite a remoção do atributo se este é usado numa visão ou como chave estrangeira numa outra tabela

Comandos SQL - DDL • Exemplos: ALTER TABLE empregado DROP endereco CASCADE; ALTER TABLE departamento ALTER gerente DROP DEFAULT ALTER TABLE departamento ALTER gerente SET DEFAULT “333444555” ALTER TABLE empregado DROP CONSTRAINT empsuperFK; ALTER TABLE empregado ADD CONSTRAINT empsuperFK FOREIGN KEY (supervisor) REFERENCES empregado (matricula)

Comandos SQL - DDL • DROPTABLE • Sintaxe • Exemplo - Remove uma tabela-base do BD. Remove tanto os dados quanto a definição da tabela • Sintaxe - DROP TABLE <nomeTabela> • Exemplo - DROP TABLE Peca

Comandos SQL - DDL • Especificando índices em SQL SQL possui comandos para criar e remover índices em atributos de relações base (faz parte da SQL DDL) Um índice é uma estrutura de acesso físico que é especificado em um ou mais atributos de um arquivo, permitindo um acesso mais eficiente aos dados - Se os atributos usados nas condições de seleção e junção de uma query são indexados, o tempo de execução da query é melhorado

Comandos SQL - DDL • Ex.: Criar um índice no atributo nome da relação Empregado CREATE INDEX nomeEmpIndex ON Empregado(nome) • O default é ordem ascendente, se quisermos uma ordem descendente adicionamos a palavra chave DESC depois do nome do atributo

Comandos SQL - DDL • Para especificar a restrição de chave usamos a palavra UNIQUE CREATE UNIQUE INDEX matrEmpIndex ON Empregado(matricula) • Para eliminarmos um índice usamos o comando DROP - Ex. DROP INDEX nome-indice

Comandos SQL - DDL • Restrições de domínios Na criação de domínios, é possível aplicar constraints para realizar algumas restrições Exemplos CREATE DOMAIN turno_trabalho NUMERIC(5,2) CONSTRAINT valor_teste_turno CHECK (VALUE >= 4,00) CREATE DOMAIN numero_conta CHAR(10) CONSTRAINT teste_nulo_numero_conta CHECK (VALUE NOT NULL) CREATE DOMAIN tipo_conta CHAR(10) CONSTRAINT teste_tipo_conta CHECK (VALUE IN (“Corrente”, “Poupança”))