BANCO DE DADOS SQL (DDL: CREATE TABLE, CONSTRAINTS)

Documentos relacionados
BANCO DE DADOS 2 SQL (CREATE TABLE, CONSTRAINTS, DELETE, UPDATE

SQL. Histórico BANCO DE DADOS. Conceito. Padrões de SQL (1) Componentes do SQL (1) Padrões de SQL (2) (DDL: CREATE TABLE, CONSTRAINTS)

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL

SQL Linguagem de Definição de Dados

A linguagem SQL

Material Teórico. Organização de Dados. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

Banco de Dados. Linguagem SQL

SQL Básica. Andre Noel

Banco de Dados I Introdução SQL

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

A linguagem SQL

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 16. Escola Politécnica da Universidade de São Paulo

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Bases de Dados. DDL Data Definition Language

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

Modelagem Física e SQL

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

Modelagem Física e SQL

Tabelas. Banco de Dados I MySQL

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

BCD29008 Banco de dados

MODELAGEM DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Bancos (Bases) de Dados

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

Structured Query Language (SQL) Aula Prática

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

MySql. Introdução a MySQL. Andréa Garcia Trindade

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

Page 1. Prof. Constantino Jacob

SQL. Linguagem de Definição de Dados (DDL) Tipos em SQL. Tipos Data/Tempo em SQL (cont.)

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Mysql. Quanto mais informações você busca, mais você evolui. Vitor Ramos. Disciplina de Banco de Dados

Linguagem de Consulta Estruturada (SQL)

SISTEMAS DE INFORMAÇÃO BANCO DE DADOS 2. SQL (Select) PROF: EDSON THIZON

Tarefa Orientada 8 Criação de tabelas

SISTEMAS DE INFORMAÇÃO BANCO DE DADOS SQL PROF: EDSON THIZON

Linguagem de Definição de Dados (DDL)

INF1383 -Bancos de Dados

Aula 06 Sistemas Embarcados LT38C

SQL DDL. Frederico D. Bortoloti

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Definição de Dados com SQL

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

BANCO DE DADOS SQL (DML: SELECT, INSERT, UPDATE, DELETE)

Banco de Dados. Professora: Luciana Faria

Banco de Dados. Módulo 7 - Modelo Relacional. Definição do Esquema Relacional em SQL. modulo07.prz 1 10/09/01

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

Comandos DDL. id_modulo = id_m odulo

BANCO DE DADOS PARA NINJAS

SISTEMAS DE INFORMAÇÃO BANCO DE DADOS SQL PROF: EDSON THIZON

Unidade 5 05/11/2008. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Redes de Computadores

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

Manipulação de Dados com SQL

Revisão de Bancos de Dados

BANCO DE DADOS GERENCIAL 1 A U L A 2

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

INTRODUÇÃO AO MYSQL PROF. ME. HÉLIO ESPERIDIÃO

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe

DCC011 Introdução a Banco de Dados SQL gerenciar tabelas e dados

modelo introduzido por E. F. Codd Meados da década de 70: protótipos. INGRES (UC Berkeley, 73 77) System R (IBM Research at San Jose, 74 78)

Arquivo. Banco de Dados. Organização dos Arquivos. Banco de Dados. Banco de Dados. Introdução a Computação

Banco de Dados II. Transações (Oracle) Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

SQL. Prof. Roger Cristhian Gomes

Linguagem SQL Sub-linguagem DDL

Linguagem de Consulta - SQL

BCD29008 Banco de dados


Instrução Create Table

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)


Prof. Dr. Joaquim Assunção Banco de Dados. SQL (parte 4) DDL Restrições

Laboratório de Banco de Dados. Prof. Luiz Vivacqua.

Revisão Banco de Dados

Structured Query Language (SQL)

SQL - Criação de Tabelas

MODELAGEM DE DADOS MODELO FÍSICO

Marcelo Henrique dos Santos

Modelo Relacional Prof. Msc Denival A. dos Santos

Exemplos de Vistas SQL. Tipos em SQL. Linguagem de Definição de Dados (DDL) CREATE VIEW todososclientes As

INTRODUÇÃO AO MYSQL. Eng. Computação

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

SQL - Structured Query Language. Karine Reis Ferreira

S Q L Asserções, Visões e Técnicas de Programação. Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore

Fundamentos de SQL. Curso: Técnico em Redes de Computadores Disciplina: Tecnologias e Linguagem de Banco de dados Professor: Rodrigo da Rocha

P R O F. M E. H É L I O E S P E R I D I Ã O. Eng. Computação

Linguagem SQL (Parte II)

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Transcrição:

BANCO DE DADOS SQL (DDL: CREATE TABLE, CONSTRAINTS) Prof. Edson Thizon

Histórico Entre 1974 e 1979, o San José Research Laboratory da IBM desenvolveu um SGDB relacional que ficou conhecido como Sistema R. Para a criação e acesso aos dados foi adotada uma linguagem chamada SEQUEL, mais tarde rebatizada SQL (Structured Query Language). Embora a query em sua definição, a SQL foi projetada de forma a permitir que além de consultas (queries), inserções, alterações e deleções fossem feitas, além da própria criação das tabelas e campos.

Conceito SQL ( STRUCTURED QUERY LANGUAGE) Uma linguagem utilizada para consultar, atualizar e gerenciar Banco de Dados. Uma linguagem de aplicação para Banco de Dados relacionais, e não um sistema ou uma linguagem de programação.

Padrões de SQL (1) SQL ( structured query language ) é uma linguagem comercial de definição e manipulação de banco de dados relacional. SQL é padrão de fato (mesmo SGBDs como INGRES que possuíam outras linguagens oferecem uma interface SQL) SQL é padrão de direito (ISO): SQL1 aprovado em 1986, com modificações em 1989 SQL2 aprovado em 1992 SQL3 aprovado em 1999

Padrões de SQL (2) A aderência a padrões de SQL é importante para aqueles que: escrevem comandos de SQL em suas aplicações (SQL não fica oculto por algum gerador de telas..) desejam portar aplicações a vários SGBD O padrão é irrelevante para aqueles que usam ferramentas como geradores de telas, relatórios, etc. proprietários - o usuário está preso ao fornecedor da ferramenta Praticamente todo fornecedor de SGBD afirma que seu SQL é compatível com o padrão Grandes fornecedores (Oracle, Sybase, DB/2, SQL/Server) normalmente têm pelo menos SQL/2 entry level (entry-level, conjunto mínimo para considerar produto como SQL/2)

Componentes do SQL (1) Oferece as seguintes funcionalidades: 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 Uma versão de SQL embutida em linguagens de programação de 3ª geração (COBOL, C, ) estendendo-as para a manipulação de banco de dados.

Componentes do SQL (2) Um padrão para comunicação cliente/servidor (ODBC - open database connectivity) a partir de SQL/3 Instruções para definição de visões (tabelas virtuais vistas por um usuário ou uma classe de usuários) Instruções para controle de autorização de acesso Instruções para controle de transações e concorrência Instruções para especificação de restrições de integridade

DDL A DDL, uma parte muito pequena da SQL, permite a criação e manutenção do dicionário de dados. O dicionário de dados contém a definição de cada tabela, de cada campo, enfim, contém a definição da base de dados propriamente dita. Em outras palavras, o dicionário de dados guarda dados sobre os dados. Embora existam algumas outras construções, a mais importante das construções da DDL é a destinada a criação de tabelas. Por exemplo, a sentença para a criação das tabelas funcionário, cidade, e setor, poderia ser como segue: Adotada como padrão mundial pela ISSO em 1987, é uma linguagem exclusiva de banco de dados Cliente/Servidor; Não dispõe dos seguinte recursos: - Repetição e desvio; - Comandos para manipulação de telas e impressão de relatórios; Os Fabricantes de SGBD podem expandir a linguagem SQL padrão ANSI, desde que os comandos básicos sejam aceitos.

DDL Criação de banco de dados SQL/2 não oferece instruções para criação de BD. Alguns produtos (SQL/Server) têm instruções de DDL: Create Database cria uma base de dados vazia Drop Database elimina uma base de dados Outros têm abordagens variadas Oracle cria o BD como parte da instalação do software INGRES tem um utilitário

Instruções da DDL SQL oferece três instruções para definição do esquema da base de dados: Create Table define a estrutura de uma tabela, suas restrições de integridade e cria a tabela vazia Drop Table elimina a tabela da base de dados Alter Table permite modificar a definição de uma tabela

Observações sobre a definição de tabelas Em SQL/2 o conjunto de domínios de valores de atributos é fixo. Desejável (SQL/3, poucos produtos implementam) domínio definível pelo usuário (exemplo: dias da semana, meses do ano, ) Nos SGBD comerciais são oferecidos domínios adicionais aos do padrão (CHAR, VARCHAR, INTEGER, REAL, ) destinados a aplicações especiais como DATE, CURRENCY e domíniospara armazenar campos longos (BLOBS, até 2 gigabytes) destinados a conter imagens, sons, vídeos, etc. (maioria aparece no SQL/2)

Observações sobre a definição de tabelas A cláusula NOT NULL especifica que uma coluna não admite o valor vazio (requerido para colunas que sejam chave primária) Default é NULL permitido (exceto Sybase e SQL/Server antigos) As colunas de uma tabela são classificadas na ordem de sua definição (linhas não tem classificação)

LIMITES DO ORACLE RDBMS ITEM LIMITE Tabela na Base de dados Não há limites. Linhas por Tabelas Não há limites Colunas por tabelas 254 Indices por tabelas Não há limites Tebelas ou views joined em Não há limites uma query Niveis de ninho de subqueries 30 Caracteres em um nome 255 Colunas por índices 16

TIPOS DE DADOS(DATATYPES) TIPO DESCRIÇÃO DO TIPO DE DADO Char(n) Tamanho Fixo, pode conter uma seqüência de 1 a 255 bytes alfanuméricos; Varchar2(n) Tamanho Variável, pode conter uma seqüência de 1 a 2000 bytes - alfanuméricos. Long Tamanho Variável até 2 Gigabytes alfanuméricos nota : só pode existir uma coluna long em cada tabela Number(p,s) Numérico com sinal e ponto decimal, sendo precisão de 1 a 38 dígitos Raw Binário - Variável até 255 bytes Long Raw Binário - Variável até 2 gigabytes - imagem Date Data c/ hora, minuto e segundo

Comando para criar Tabela CREATE TABLE DEPT (DEPTNO NUMBER(2), DNAME VARCHAR2(14), LOC VARCHAR2(13));

Outro Exemplo: Create table ALUNO (cd_aluno number(5) not null nm_aluno varchar2(30) not null);

Eliminando uma tabela Para eliminar completamente uma tabela (vazia ou não) da base de dados, é usada a instrução: DROP TABLE ALUNO; 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 aluno RESTRICT; Exclui a tabela somente se não existirem visões definidas com base na tabela DROP TABLE ALUNO CASCADE CONSTRAINT; Exlui a tabela com todas as constraints relacionadas

Alterando uma Tabela A instrução ALTER TABLE serve para modificar a definição original da tabela. Nem todas modificações são permitidas Primeiros SGBDs e SQL/1 somente permitiam adicionar colunas

Alterando a definição de uma Tabela Para modificar a estrutura de tabelas já existentes na base de dados, há uma instrução que permite adicionar colunas a tabelas: ALTER TABLE Embarq ADD DataEmbarq DATE Observe-se que: 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 Não pode ser especificada a cláusula NOT NULL já que a coluna é criada com o valor vazio

Alterando a definição de uma Tabela SGBD não permite a alteração desejada Para fazer a alteração: 1. Armazenar o conteúdo da tabela em tabela temporária ou arquivo do sistema operacional 2. Eliminar todas referencias a tabela antiga 3. Eliminar a tabela antiga (DROP TABLE) 4. Definir a nova tabela (CREATE TABLE) 5. Carregar a nova tabela a partir da tabela intermediária ou arquivo do sistema operacional criado no passo 1 6. Reincluir as referencias à tabela

Verificando estrutura da tabela Desc nome_tabela;

Restrições de Chave No SQL original (System R) e no SQL padrão original (86) não havia cláusulas para especificar chaves. A única maneira de definir chave primária era através da criação de um índice sem duplicatas sobre a coluna. Não havia forma declarativa de definir chaves estrangeiras. SGBD não dava suporte a integridade referencial. Usuário é obrigado a programar os testes de chaves em sua aplicação

Integridade Referencial nos SGBD Padrão (86/89) foi estendido para especificar chaves: primária estrangeira alternativa (unique key) Praticamente todos produtos comerciais incluem a definição de

Integridade Referencial As integridades dos dados são definidas através de objetos Constraints, que podem ser: Not null Unique Key Primary Key Check Foreign Key

Not Null Não permite a entrada de valores nulos em uma determinada coluna. Exemplo:Create table ALUNO1 (cd_aluno number(5) not null, nm_aluno varchar2(30) not null);

Constraint Primary Key Identifica unicamente uma tabela Exemplo: Create table ALUNO2 (cd_aluno number(5) not null, nm_aluno varchar2(30) not null, constraint aluno_pk primary key (cd_aluno));

Constraint Unique Key É definido para garantir que o valor de uma coluna seja único. Exemplo Create table ALUNO3 (cd_aluno number(5) not null, nm_aluno varchar2(30) not null, cd_cpf varchar2(14), constraint aluno_pk primary key(cd_aluno), constraint alu_cpf_uk unique(cd_cpf));

Constraint Check São validações de colunas. Exemplo 1: Create table Aluno (cd_aluno number(5) not null, nm_aluno varchar2(30), tp_sexo char(1), constraint aluno_pk primary key (cd_aluno), constraint sexo_ck check (tp_sexo in ( M, F ));

Constraint Check Exemplo 2: ALTER TABLE Cliente ADD CONSTRAINT ValidaCampos CHECK (TipoCli= Pessoa Física AND CIC IS NOT NUL AND CGC IS NULL) OR (TipoCli= Pessoa Jurídica AND CIC IS NULL AND CGC IS NOT NULL)

Constraint Foreign Key Coluna que referencia a chave primária de outra tabela, indicando um relacionamento entre ambas as tabelas envolvidas.

Foreign Key FOREIGN KEY- Define a coluna na tabela filho que possua a chave estrangeira REFERENCES - Identifica a tabela e a coluna da tabela pai ON DELETE CASCADE - Indica que quando uma linha na tabela pai é deletada, as linhas dependentes na tabela filho também são deletadas.

Exemplo de Foreign Key Create table matricula(cd_curso number(5) not null, cd_aluno number(5) not null, dt_matricula date not null, constraint mat_pk primary key (cd_curso,cd_aluno), constraint alu_mat_fk foreign key (cd_aluno) references aluno(cd_aluno));

ALTER TABLE CONSTRAINT ALTER TABLE permite incluir ou excluir restrições de chave ALTER TABLE Representantes DROP PRIMARY KEY Para excluir uma chave estrangeira é necessário que ela tenha recebido um nome quando de sua definição ALTER TABLE Representantes ADD FOREIGN KEY (CodFilial) REFERENCES Filiais ALTER TABLE Representantes DROP FOREIGN KEY (CodFilial) REFERENCES Filiais

Visualizando as colunas associadas as constraints (Oracle) Use a visão User_cons_columns Exemplo: Select constraint_name, column_name from User_cons_columns where table_name = EMP ;

Gerenciando Constraints Comando ALTER TABLE Aluno ADD constraint aluno_pk primary key (nm_aluno); ENABLE constraint mat_alu_fk; DISABLE constraint mat_alu_fk; DROP constraint mat_alu_fk;

Consultando Constraints Use a tabela User_constraints para visualisar todas as definições e nomes das constraint. Exemplo: Select constraint_name, constraint_type, search_condition from user_constraints where table_name= EMP ;

Referências Bibliográficas KORTH, Henry F. & SILBERSCHATZ, Abraham. Sistemas de Bancos de Dados, São Paulo. Ed. Makron Books, 1999. HEUSER, Carlos Alberto. Projeto de Banco de Dados. 4ª Edição. Ed. Sagra, 2001. FERNANDES, Lúcia. Oracle 9i Para Desenvolvedores Oracle Developer 6i Curso Completo. Ed. Axcel. 2002. ABBEY, Michael. Oracle: guia do usuário. São Paulo: Markon Books, 1997.