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

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

Contatos Gladimir Catarino

Apresentações semelhantes


Apresentação em tema: "Contatos Gladimir Catarino"— Transcrição da apresentação:

1 Contatos gladimir@gmail.com gladimircc @gladimircc Gladimir Catarino

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

3 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

4 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

5 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

6 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)

7 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

8 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

9 SQL - Domínios

10 SQL - Domínios

11 SQL - Domínios

12 SQL - Domínios

13 SQL - Domínios

14 SQL - Domínios

15 SQL - Domínios

16 Structured Query Language
Comandos SQL Structured Query Language

17 Data Definition Language
Comandos SQL - DDL Data Definition Language

18 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

19 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

20 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

21 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)

22 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) );

23 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));

24 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')))

25 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

26 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

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

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

29 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));

30 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), ...);

31 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

32 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

33 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

34 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

35 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);

36 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

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

38 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

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

40 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

41 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

42 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

43 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

44 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”))


Carregar ppt "Contatos Gladimir Catarino"

Apresentações semelhantes


Anúncios Google