Regras de Integridade. Profa. Késsia Marchi



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

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

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Comandos DDL. id_modulo = id_m odulo

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

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

Linguagem SQL Sub-linguagem DDL

Linguagem SQL (Parte II)

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Capitulo 2. Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados

Structured Query Language (SQL)

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

SQL - Criação de Tabelas

Programação SQL. Introdução

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Integridade. Carlos Eduardo Portela Serra de Castro

SQL DDL ALTERAÇÃO DA ESTRUTURA DE TABELAS - ALTER TABLE - ALTER TABLE NOME_TABELA ADD [COLUMN] NOME_COLUNA TIPO_COLUNA RESTRIÇÕES

1. Domínio dos Atributos

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

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

A linguagem SQL

SQL. Autor: Renata Viegas


Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak

O projeto físico do bando de dados consiste no mapeamento do projeto lógico para um DBMS real Projeto deve levar em conta fatores como:

09/06/2015 EXEMPLO COM A CONSTRAINTS CHECK: CHECK EXISTEM ALGUNS TIPOS DISTINTOS DE RESTRIÇÕES QUE SE PODEM APLICAR A COLUNAS: Constraint NOT NULL

SQL DDL. Frederico D. Bortoloti

Introdução ao PostgreSQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

Comandos de Manipulação

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva -

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

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

SQL: Definição de tabelas, Modificações à Base de Dados

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

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

Fundamentos do Sistema Gerenciador de Banco de Dados

Structured Query Language (SQL) Aula Prática

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Disciplina de Banco de Dados Parte V

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia

SQL (Structured Query Language)

SQL (Structured Query Language)

SQL (Structured Query Language)

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

SQL Structured Query Language. SQL Linguagem de Definição de Dados. SQL Structured Query Language. SQL Structured Query Language

Modelagem de Banco de Dados através do ERwin

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

SQL. Structured Query Language

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Linguagem SQL. Comandos Básicos

4.6. SQL - Structured Query Language

Estudo do Sistema de Gestão de Bases de Dados PostgreSQL. André Ricardo Carlos Nobre Cristiano Lopes Nº Nº Nº 17662

Banco de Dados / 2. Banco de Dados / 4. Tipo de dados padrão. versão. Banco de Dados / 6. Nome físico da tabela. versão

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

UNISA Universidade de Santo Amaro. Material de Estudo. Módulo I: Básico Banco de dados SQL Server.

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Projeto de Banco de Dados: Empresa X

Tarefa Orientada 15 Manipulação de dados

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Linguagem de Consulta - SQL

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

CICLO DE VIDA DE UM BD

SQL Linguagem de Definição de Dados

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Linguagem de Consulta Estruturada (SQL)

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

Principal: construir uma base de dados para produção de informações sobre internações hospitalares;

ADMINISTRAÇÃO DE BANCO DE DADOS

Integridade dos Dados

Núcleo de Pós Graduação Pitágoras

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)

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

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

SQL Básica. Andre Noel

Operação de União JOIN

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

PHP INTEGRAÇÃO COM MYSQL PARTE 1

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

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

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language)

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

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

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

Tarefa Orientada 19 Triggers

Sistemas de Informação

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

Banco de Dados I Introdução SQL

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento

Transcrição:

Regras de Integridade

Restrições de Integridade Integridade refere-se a precisão ou correção de dados em um banco de dados; Restrição refere-se a impor uma condição para qualquer atualização. Antes de prosseguirmos devemos enfatizar que na escolha de um SGBD deva selecionar de fato um que forneça suporte declarativo, ou seja, mais de 90% das declarações de um banco de dados típicos consistiriam em restrições.

Tipos de Restrições Declarativa Diz respeito ao uso de constraints e rules Procedural Diz respeito ao uso de Stored Procedures e Triggers

Aspectos de Restrições Integridade de Domínio Referente aos dados que são permitidos nas colunas (campos) da tabela Integridade de Entidade Refere-se a unicidade de registros na tabela; Integridade Referencial Usada para manter a consistência entre as tuplas (registros); A tupla em uma relação, que faz referência a outra relação, deve referir a uma tupla existente nessa relação.

Implementando Integridade Declarativa com Constraint Constraint é uma regra aplicada a um determinado atributo, responsável pela restrição dos valores a serem armazenados. Uma constraint pode ser especificada nas definições de um atributo (modelo lógico) ou nas definições de coluna (modelo físico).

Criação da Tabela CREATE [ [ GLOBAL LOCAL ] { TEMPORARY TEMP } ] TABLE nome_tabela ( [ { nome_coluna tipo_dado [ DEFAULT expressão_padrão ] [ restrição_coluna [... ] ] restrição_tabela LIKE tabela_pai [ { INCLUDING EXCLUDING } DEFAULTS ] } [,... ] ] ) [ INHERITS ( tabela_pai [,... ] ) ] [ WITH OIDS WITHOUT OIDS ] [ ON COMMIT { PRESERVE ROWS DELETE ROWS DROP } ] [ TABLESPACE tablespace ]

Temporary or temp Criação da Tabela Parâmetros Quando especificado, são criados tabelas temporárias; São excluídas automaticamente no final da sessão ou no final da transação.

DEFAULT default_expr Criação da Tabela Parâmetros Atribui um valor padrão para a coluna. CREATE TABLE produtos ( prod_cod integer, prod_descricao text, prod_preco numeric DEFAULT 9.99 );

WITH OIDS WITHOUT OIDS Criação da Tabela Parâmetros Especifica se a tabela terá ou não objetos identificadores (OIDs) nomeados. O que é OID? Identificadores de Objetos Quando devemos utilizar e para que? O seqüenciamento do OID não é finito Campo inteiro de 32 bits Reinicia toda vez que seu valor máximo é atingido.

Criação da Tabela Parâmetros CONSTRAINT constraint_name Nome opcional para constraint de coluna ou de tabela. Quando não incluída, o sistema gera automaticamente. UNIQUE (column constraint) UNIQUE ( column_name [,... ] ) (table constraint) Especifica que um grupo de uma ou mais colunas de uma tabela possa conter um valor único.

Exemplo CREATE TABLE produtos ( prod_cod integer UNIQUE, prod_nome text, prod_preco numeric );

Exemplo CREATE TABLE produtos ( prod_cod integer, prod_nome text, prod_preco numeric, UNIQUE (prod_cod ) );

Exemplo CREATE TABLE exemplo ( a integer, b integer, c integer, UNIQUE (a, c) );

Exemplo CREATE TABLE produtos ( ); cod_prod integer CONSTRAINT unq_cod_prod UNIQUE, nome text, preco numeric

CHECK (expression) Criação da Tabela Parâmetros Especifica uma expressão que apresenta um resultado booleano que deve ser satisfeito para a inserção ou alteração de dados.

Exemplo CREATE TABLE produtos ( ); prod_no integer, prod_descricao text, prod_preco numeric CHECK (prod_preco > 0)

Exemplo CREATE TABLE produtos ( ); prod_no integer, prod_descricao text, prod_preco numeric CONSTRAINT preco_positivo CHECK (preco > 0)

Exemplo CREATE TABLE produtos ( prod_no integer, prod_descricao text, prod_desconto numeric CHECK (prod_desconto > 0 AND prod_desconto < 0.10), prod_preco numeric CONSTRAINT preco_positivo CHECK (preco > 0), check (prod_preco > prod_desconto) );

Constraint Not Null CREATE TABLE produtos ( ); Criação da Tabela Parâmetros prod_no integer NOT NULL CHECK (cod_prod > 0), prod_nome text NOT NULL, prod_preco numeric NOT NULL Obs importante: nulos não são checados. UNIQUE não aceita valores repetidos, mas aceita vários nulos (já que estes não são checados). Cuidado com NULLs.

Criação da Tabela Parâmetros PRIMARY KEY (column constraint) PRIMARY KEY ( column_name [,... ] ) (table constraint) Especifica que uma ou várias colunas de uma tabela contém somente valores únicos e não nulos. Identifica um conjunto de colunas como PK, providenciando o metadados sobre o projeto ou esquema de BD.

Exemplo CREATE TABLE produtos ( prod_no integer UNIQUE NOT NULL, prod_nome text, prod_preco numeric ); CREATE TABLE produtos ( prod_no integer PRIMARY KEY, prod_nome text, prod_preco numeric );

Exemplo Composta por mais de um campo. CREATE TABLE exemplo ( a integer, b integer, c integer, PRIMARY KEY (a, c) );

Criação da Tabela Parâmetros REFERENCES reftable [ ( refcolumn ) ] [ MATCH matchtype ] [ ON DELETE action ] [ ON UPDATE action ] (column constraint) FOREIGN KEY ( column [,... ] ) REFERENCES reftable [ ( refcolumn [,... ] ) ] [ MATCH matchtype ] [ ON DELETE action ] [ ON UPDATE action ] (table constraint) Cláusula que especifica um constraint de chave estrangeura (FK) FK não podem ser definidas entre tabelas temporárias Os valores inseridos nas tabelas referenciadas são os matched Match full default Não permite que o valor da FK possa ser nula Match partial Permite que o valor da FK possa ser nula Match simple

Exemplo Tabela principal CREATE TABLE produtos ( prod_no integer PRIMARY KEY, prod_nome text, prod_preco numeric ); Tabela referenciada CREATE TABLE pedidos ( ped_no integer PRIMARY KEY, prod_no integer, ped_quantidade integer, CONSTRAINT pedidos_fk FOREIGN KEY (prod_no ) REFERENCES produtos2 (prod_no ) );

Praticando Baseados no DER, crie todas as tabelas e constraints que for necessário; Ainda com base nesta relação defina condições para os atributos: Notas não pode ser superior a 10; Alunos na tabela nota tem se originar da tabela Aluno

Praticando

Referencias Quando utilizar OIDs se torna uma má idéia disponível em http://www.alexandrejose.com.br/?p=46. acessado em 27/05/2008. PostgreSQL 8.1.11 Documentation. Disponível em http://www.postgresql.org/docs/8.1/interact ive/sql-createtable.html acessado em 27/05/2008.