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

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

SCC Bancos de Dados e Suas Aplicações

Apresentações semelhantes


Apresentação em tema: "SCC Bancos de Dados e Suas Aplicações"— Transcrição da apresentação:

1 SCC0141 - Bancos de Dados e Suas Aplicações
Prof. Jose Fernando Rodrigues Junior Material original: Elaine Parros Machado de Sousa Linguagem SQL – DDL Documentacao PostgreSQL

2 SQL - Introdução SQL linguagem declarativa  não procedural
desenvolvida e implementada pelo laboratório de pesquisa da IBM em San Jose –década de 70 inicialmente chamada SEQUEL (Structured English QUEry Language) criada como interface entre usuários e o primeiro SGBDR – SYSTEM R USP – ICMC – GBDI

3 SQL - Introdução Padrão industrial que atinge grande parte do mercado de SGBDs atrativo: pequena quantidade de comandos para realizar uma grande quantidade de operações simplicidade grande poder de consulta padrão facilita migração USP – ICMC – GBDI

4 SQL - Introdução O padrão SQL SQL 2008 SQL 2006 SQL 2003 SQL99 (SQL3)
USP – ICMC – GBDI

5 SQL Recursos: DDL – Data Definition Language
DML – Data Manipulation Language definição de restrições de integridade criação de visões (views) especificações de segurança e autorizações controle de transação regras para integração com linguagens de programação .... USP – ICMC – GBDI

6 SQL Dois conjuntos principais de comandos:
DDL – Data Definition Language : especificação do esquema da base de dados DML – Data Manipulation Language : inserção, remoção, alteração e consultas na instância da base de dados USP – ICMC – GBDI

7 DDL e DML DDL: CREATE, DROP, e ALTER
TABLE, DATABASE, DOMAIN, EXCEPTION, GENERATOR, INDEX, PROCEDURE, ROLE, SHADOW, TRIGGER, E VIEW DML: SELECT (FROM), DELETE (FROM), INSERT (INTO), UPDATE USP – ICMC – GBDI

8 DDL e DML DDL: CREATE, DROP, e ALTER
TABLE, DATABASE, DOMAIN, EXCEPTION, GENERATOR, INDEX, PROCEDURE, ROLE, SHADOW, TRIGGER, E VIEW DML: SELECT (FROM), DELETE (FROM), INSERT (INTO), UPDATE Existem variações entre fabricantes, tanto com relação ao conjunto de funcionalidades quanto a como estas funcionalidades operam. USP – ICMC – GBDI

9 DDL - Introdução Alguns comandos da DDL: CREATE TABLE ALTER TABLE
DROP TABLE CREATE DOMAIN ALTER DOMAIN DROP DOMAIN CREATE VIEW ALTER VIEW DROP VIEW CREATE INDEX ALTER INDEX DROP INDEX ... USP – ICMC – GBDI

10 Comandos DDL CREATE TABLE - criar uma tabela, definir colunas e restrições CREATE TABLE tabela ( atrib1 tipo [<restrições da coluna 1>], atrib2 tipo [<restrições da coluna 2>], .... atribn tipo [<restrições da coluna n>], <restrições da tabela> ); PostgreSQL data types USP – ICMC – GBDI

11 SQL – Alguns tipos de dado
INTEGER | SMALLINT | NUMBER DECIMAL [(precision, scale)] precision - número total de dígitos scale - número de dígitos depois do ponto DOUBLE PRECISION | FLOAT | REAL CHAR(n) - tamanho fixo - n caracteres VARCHAR(n) - tamanho variável máximo de n caracteres BLOB – Binary Large Object – DATE | TIME | TIMESTAMP ... USP – ICMC – GBDI

12 CREATE TABLE Restrições de colunas NOT NULL DEFAULT valor
CHECK(condição) CREATE TABLE tabela ( atrib1 tipo [(tamanho)] [NOT NULL | DEFAULT valor] [CHECK (condição)], atrib2 tipo [(tamanho)] [NOT NULL | DEFAULT valor] ... USP – ICMC – GBDI

13 CREATE TABLE Restrições de tabela
PRIMARY KEY ( <atributos chave primária> ) UNIQUE ( <atributos chave candidata> ) FOREIGN KEY ( <atributos chave estrangeira> REFERENCES tabelaRef [(<chave primária>)] [<ações>] <ações> ON DELETE | ON UPDATE CASCADE | SET NULL | SET DEFAULT CHECK(condição) Um atributo que referencia outro por meio de FOREING KEY não precisa ter o mesmo nome; apenas deve ter um domínio compatível. Assim por exemplo CHAR(5) é compatível com CHAR(10) – muito embora isso possa criar problemas posteriores. Mas INT não é compátivel com VARCHAR(n) por exemplo. USP – ICMC – GBDI

14 CREATE TABLE Restrições de tabela
Há grandes diferenças entre os diferentes fabricantes. Em Oracle, por exemplo, não são possíveis: ON UPDATE SET DEFAULT Atributos que serão chave, devem ser definidos como NOT NULL Em Borland Interbase, é necessário que um atributo que será chave seja explicitamente declarado como NOT NULL, o que não é necessário nem em Oracle nem em PostgreSQL. Restrições de tabela PRIMARY KEY ( <atributos chave primária> ) UNIQUE ( <atributos chave candidata> ) FOREIGN KEY ( <atributos chave estrangeira> REFERENCES tabelaRef [(<chave primária>)] [<ações>] <ações> ON DELETE | ON UPDATE CASCADE | SET NULL | SET DEFAULT CHECK(condição) Um atributo que referencia outro por meio de FOREING KEY não precisa ter o mesmo nome; apenas deve ter um domínio compatível. Assim por exemplo CHAR(5) é compatível com CHAR(10) – muito embora isso possa criar problemas posteriores. Mas INT não é compátivel com VARCHAR(n) por exemplo. USP – ICMC – GBDI

15 CREATE TABLE CREATE TABLE tabela ( atrib1 tipo [(tamanho)] [NOT NULL | DEFAULT valor] [CHECK (condição)], atrib2 tipo [(tamanho)] [NOT NULL | DEFAULT valor] ... [CONSTRAINT nome da restrição] PRIMARY KEY (<atributos chave primária>), UNIQUE (< atributos chave candidata>), FOREIGN KEY (<atributos chave estrangeira>) REFERENCES tabelaRef [(<chave primária>)] [ON DELETE CASCADE | SET NULL | SET DEFAULT] [ON UPDATE CASCADE | SET NULL | SET DEFAULT], CHECK (condição) );

16 Exercício Criar as tabelas para o seguinte esquema
Aluno = {Nome, Nusp, Idade, DataNasc}  Professor = {Nome, NFunc, Idade, Titulação}  Disciplina = {Sigla, Nome, NCred, Professor, Livro} Turma = {Sigla, Numero, NAlunos}  Matrícula = {Sigla, Numero, Aluno, Ano, Nota} USP – ICMC – GBDI

17 Comandos DDL ALTER TABLE – incluir/alterar/remover definições de colunas e restrições ALTER TABLE tabela <ação>; <ação>: - ADD novoAtrib tipo [<restrições de coluna>] - ADD [CONSTRAINT nome] <restrição de tabela> - DROP atributo [CASCADE | RESTRICT] - DROP CONSTRAINT nome - ALTER atributo DROP DEFAULT; - ALTER atributo SET DEFAULT <valor>;

18 ALTER TABLE ADD novoAtrib tipo [<restrições de coluna>]
DROP atributo [CASCADE | RESTRICT] CASCADE – todas as visões e restrições (constraints) que referenciam o atributo são removidas automaticamente RESTRICT – atributo só é removido se não houver nenhuma visão ou restrição que o referencie Verificar ALTER para mudar nome e tipo do atributo USP – ICMC – GBDI

19 Exercício Modificar as tabelas para:
Aluno = {Nome, Nusp, Idade, DataNasc}  Professor = {Nome, NFunc, Idade, Titulação}  Disciplina = {Sigla, Nome, NCred, Professor, Livro} Turma = {Sigla, Numero, NAlunos}  Matrícula = {Sigla, Numero, Aluno, Ano, Nota} Exercício Modificar as tabelas para: acrescentar o atributo Cidade de Origem para a tabela Aluno remover o atributo Numero da tabela Turma como fica a tabela matrícula? acrescentar uma restrição para que a nota de um aluno seja sempre maior ou igual a 0 e menor ou igual a 10 remover uma restrição da tabela Disciplina ALTER TABLE ALUNO ADD CidadeOrigem VARCHAR(100) DEFAULT 'Sao Carlos'; ALTER TABLE TURMA DROP Numero CASCADE; -- remove tanto o atributo quanto a fk de Matricula ALTER TABLE MATRICULA ADD CONSTRAINT matricula_ch_nota CHECK(Nota >= 0 AND Nota <= 10); ALTER TABLE DISCIPLINA DROP CONSTRAINT Discip_un_cred; USP – ICMC – GBDI

20 Comandos DDL DROP TABLE tabela [CASCADE | RESTRICT];
DROP TABLE - exclui uma tabela da base de dados DROP TABLE tabela [CASCADE | RESTRICT]; CASCADE: todas as visões e restrições que referenciam a tabela são removidas automaticamente RESTRICT: a tabela é removida somente se não for referenciada em nenhuma restrição ou visão USP – ICMC – GBDI 20 20

21 Comandos DDL [<restrições de coluna>]
CREATE DOMAIN – cria um nome de domínio para especificar um tipo de dado (álias) CREATE DOMAIN nome AS tipo [<restrições de coluna>] facilita alterações de tipos de dados simplifica legibilidade USP – ICMC – GBDI

22 CREATE DOMAIN - exemplo
CREATE DOMAIN CUSTNO AS INTEGER DEFAULT 9999 CHECK (VALUE > 1000); CREATE DOMAIN PRODTYPE AS VARCHAR(12) CHECK (VALUE IN (’software’, ’hardware’, ’other’, ’N/A’)); USP – ICMC – GBDI 22 22

23 Exercício Modificar as tabelas para:
incluir em Matrícula um atributo de frequência do aluno, cujo tipo é um domínio Frequencia. Aluno = {Nome, Nusp, Idade, DataNasc, CidadeOrigem}  Professor = {Nome, NFunc, Idade, Titulação}  Disciplina = {Sigla, Nome, NCred, Professor, Livro} Turma = {Sigla, Numero, NAlunos}  Matrícula = {Sigla, Numero, Aluno, Ano, Nota} CREATE DOMAIN FREQ AS DECIMAL(2,0) DEFAULT 0 CHECK(VALUE >=0 AND VALUE <= 100); ALTER TABLE ALUNO ADD Frequencia FREQ; USP – ICMC – GBDI

24 Leitura recomendada R. Elmasri, S. Navathe: Fundamentals of Database Systems – 4th Edition Capítulo 8 A. Silberschatz, H. F. Korth, s. Sudarshan: Sistema de Banco de Dados Capítulo 4 USP – ICMC – GBDI

25 SQL – Alguns Operadores...
=, < , > , <= , >= , <> AND, OR, NOT <atributo ou expressão> BETWEEN valor1 AND valor2 determina se o valor de um atributo ou de uma expressão se encontra dentro de um intervalo especificado de valores <atributo ou expressão> IS NULL determina se o valor de um atributo ou de uma expressão é nulo USP – ICMC – GBDI

26 SQL – Alguns Operadores...
LIKE compara partes de uma sequência de caracteres atributo LIKE ‘%string%’ % compara qualquer substring (número arbitrário de caracteres) atributo LIKE ‘_string_ _’ _ compara qualquer caractere comparação case-sensitive USP – ICMC – GBDI

27 SQL – Alguns Operadores...
<atributo ou expressão> IN <conjunto valores> verifica se o valor de um atributo ou de uma expressão é igual a algum dos vários valores em uma lista especificada <atributo ou expressão> NOT IN <conjunto valores> ... USP – ICMC – GBDI


Carregar ppt "SCC Bancos de Dados e Suas Aplicações"

Apresentações semelhantes


Anúncios Google