Structured Query Language (SQL) Ambiente Simplificado de um SGBD



Documentos relacionados
Structured Query Language (SQL) Aula Prática

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

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

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

SQL - Criação de Tabelas

SQL. Autor: Renata Viegas

A linguagem SQL

Comandos de Manipulação

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

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

Linguagem SQL Sub-linguagem DDL

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

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

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

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

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Comandos DDL. id_modulo = id_m odulo

SQL (Structured Query Language)

SQL DDL. Frederico D. Bortoloti

Prof.: Clayton Maciel Costa

SQL (Structured Query Language)

SQL (Structured Query Language)

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

Linguagem SQL (Parte II)

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

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

Programação SQL. Introdução

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Linguagem de Consulta - SQL

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

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

Conjunto de conceitos que podem ser usados para descrever a estrutura de um banco de dados

Banco de Dados. Maurício Edgar Stivanello

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

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

Banco de Dados. Conceitos e Arquitetura de Sistemas de Banco de Dados. Profa. Flávia Cristina Bernardini

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

SQL (STRUCTUREDQUERY LANGUAGE)

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

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013


Introdução ao SQL. Aécio Costa

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

SQL Structured Query Language

Fundamentos do Sistema Gerenciador de Banco de Dados

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

Structured Query Language (SQL)

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

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

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

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

O que são Bancos de Dados?

Linguagem de Consulta Estruturada (SQL)

Disciplina de Banco de Dados Parte V

SQL (STRUCTUREDQUERY LANGUAGE)

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

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais

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

Introdução a Sistemas de Bancos de Dados

Á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:

Exercícios de Lógica Exercícios de Fixação 08

Banco de Dados. Prof. Antonio

Structured Query Language (SQL)

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

BANCO DE DADOS CONCEITOS BÁSICOS

ADMINISTRAÇÃO DE BANCO DE DADOS

Introdução à linguagem SQL

EXEMPLOS DE COMANDOS NO SQL SERVER

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

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

Sistemas de Banco de Dados

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

SQL. Prof. Márcio Bueno.

SQL. Banco de Dados I. Componentes de SQL

Modelos de Dados e Arquitetura de um SGBD. Introdução 1º Bimestre Prof. Patrícia Lucas

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

Gerenciamento de um Sistema de

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

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

A Linguagem SQL. Introdução a Banco de Dados DCC 011

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

SQL Básica. Andre Noel

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Bancos de Dados Aula #1 - Introdução

SQL (Structured Query Language)

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

A linguagem SQL

Banco de Dados. DIEGO BARCELOS RODRIGUES 2015 (2015/1) 1. Ifes - Campus Cachoeiro de Itapemirim

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

Linguagem SQL. Comandos Básicos

Integridade dos Dados

Roteiro 2 Conceitos Gerais

Transcrição:

Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1

Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de dados. Independência entre programas e dados: estrutura dos arquivos de dados armazenada no catálogo separadamente dos programas de acesso. Abstração de dados: representação conceitual dos dados através de modelos de dados. Suporte de múltiplas visões de dados: diferentes perspectivas ou visões de usuários. Suporte a transações: compartilhamento de dados e processamento multiusuário. 3 Esquemas, Instâncias e Estado do BD Esquema: descrição do banco de dados. É definido durante o projeto de banco de dados e não se espera que seja alterado freqüentemente. Estado ou Instância: composto pelos dados do banco de dados em um determinado momento. 4 2

Arquitetura de Três-Esquemas 5 Arquitetura de Três-Esquemas Tem por objetivo separar o usuário da aplicação do banco de dados físico. É organizada em três níveis: Nível Interno: descreve a estrutura de armazenamento físico do banco de dados. Nível Conceitual: descreve a estrutura de todo o banco de dados para a comunidade de usuários. Nível Externo ou Visão: cada esquema externo descreve a parte do banco de dados que um dado grupo de usuários tem interesse e oculta o restante do banco de dados desse grupo. A maioria dos SGBDs não separa completamente os três níveis, mas suporta essa arquitetura de alguma forma. 6 3

Independência de Dados Consiste da capacidade de mudar o esquema em um nível do sistema de banco de dados sem que ocorram alterações do esquema no próximo nível mais alto. Independência lógica de dados: é a capacidade de alterar o esquema conceitual sem mudar o esquema externo ou os programas. Independência física de dados: é a capacidade de alterar o esquema interno sem mudar o esquema conceitual. 7 Linguagens de SGBD Durante o desenvolvimento do sistema R, pesquisadores da IBM desenvolveram a linguagem SEQUEL, primeira linguagem de acesso para Sistemas Gerenciadores de Banco de Dados Relacionais. ISO e ANSI lançou em 1986 a primeira versão do padrão da linguagem SQL, o SQL-86. A linguagem passou por aperfeiçoamentos em 1989 e, em 1992, foi lançada a SQL-92 ou SQL2. Um novo padrão, chamado de SQL-99 ou SQL3 foi lançado no ano de 2000. Foi o primeiro padrão a estender a linguagem para permitir a utilização de tipos de dados complexos e a incorporar características da orientação a objetos. Após uma grande revisão do padrão SQL3 foi lançada a SQL:2003. Nesta verão foi adicionada uma nova parte ligada ao tratamento de XML. 8 4

Linguagens de SGBD Linguagem de Definição de Dados (DDL): usada para especificar o esquema conceitual. Linguagem de Definição de Armazenamento (SDL): usada para especificar o esquema interno, mas na maioria dos SGBDs a DDL é usada para definir este esquema. Linguagem de Definição de Visões (VDL): usada para especificar as visões dos usuários e os seus mapeamentos para o esquema conceitual, mas na maioria dos SGBDs a DDL é usada para definir ambos os esquemas, o conceitual e o externo. Linguagem de Manipulação de Dados (DML): usada para manipular os dados em um banco de dados. As manipulações típicas são a recuperação, inserção, remoção e modificação dos dados. 9 Tipos de Dados (4 GB) (4 GB) 10 5

Modelo Utilizado 11 Modelo Utilizado Pessoa(CPF, Nome, Sexo) Piloto (CPF, Cart_Trab) CPF Referencia Pessoa Passageiro(CPF, Dieta) CPF Referencia Pessoa Voo(Numero, Data, P_CPF) CPF Referencia Piloto Reserva(V_Numero, P_CPF) V_Numero Referencia Voo P_CPF Referencia Passageiro Telefone(Numero, P_CPF) CPF Referencia Pessoa 12 6

Linguagem de Definição de Dados (DDL) Criação de Tabelas: CREATE TABLE NOME_TABELA( COL1 TIPO_COLUNA [NOT NULL], COL1 TIPO_COLUNA [NOT NULL], COL1 TIPO_COLUNA [NOT NULL] ) 13 Linguagem de Definição de Dados (DDL) Na criação de tabelas, é possível especificar vários tipos de restrições: Chave Primária: PRIMARY KEY ; Chave Estrangeira: FOREIGN KEY; Chave Alternativa (ou alternada): UNIQUE; Restrição de Domínio: CHECK. Pode-se atribuir nomes às restrições de integridade: CONSTRAINT NOME_RESTRIÇÃO TIPO RESTRIÇÃO. 14 7

Linguagem de Definição de Dados (DDL) CREATE TABLE Pessoa(CPF VARCHAR(11) NOT NULL, Nome VARCHAR(30) NOT NULL UNIQUE, Sexo VARCHAR(1) NOT NULL, PRIMARY KEY (CPF)); CREATE TABLE Piloto(CPF VARCHAR(11) NOT NULL, Cart_Trab VARCHAR(13) NOT NULL UNIQUE, PRIMARY KEY (CPF), FOREIGN KEY (CPF) REFERENCES Pessoa (CPF)); 15 Linguagem de Definição de Dados (DDL) CREATE TABLE Passageiro(CPF VARCHAR(11) NOT NULL CONSTRAINT PK_PASSAGEIRO PRIMARY KEY CONSTRAINT FK_PESSOA REFERENCES Pessoa (CPF), Dieta VARCHAR(1) CHECK (Dieta IN( S, N ))); CREATE TABLE Voo(Numero Numeric NOT NULL CONSTRAINT PK_VOO PRIMARY KEY, Data Date NOT NULL, TIPO VARCHAR2(15) DEFAULT NACIONAL, P_CPF VARCHAR(11) NOT NULL CONSTRAINT FK_PILOTO REFERENCES Piloto (CPF)); 16 8

Linguagem de Definição de Dados (DDL) Deleção de item referenciado:... CONSTRAINT FK_PILOTO FOREIGN KEY (P_CPF) REFERENCES Piloto (CPF) ON DELETE RESTRICT); -- impede a exclusão (default)... CONSTRAINT FK_PILOTO FOREIGN KEY (P_CPF) REFERENCES Piloto (CPF) ON DELETE SET NULL); -- transforma o valor em nulo... CONSTRAINT FK_PILOTO FOREIGN KEY (P_CPF) REFERENCES Piloto (CPF) ON DELETE CASCADE); -- exclui a linha da tabela 17 Linguagem de Definição de Dados (DDL) Criação de uma tabela com linhas de outra: CREATE TABLE Pessoa_Nova AS SELECT CPF, Nome, Sexo FROM Pessoa; 18 9

Linguagem de Definição de Dados (DDL) CREATE VIEW <nome-de-visão> [ (lista-de-colunas) ] AS <comando-de-seleção> [WITH CHECK OPTION] CREATE VIEW Empregados_Sede AS SELECT (Nome, Endereco, Sexo, Data-nasc) FROM EMPREGADO Atualização (INSERT, UPDATE, DELETE) de visão: A query não pode conter join, ou seja, deve ser baseada apenas em uma tabela. A query deve conter todas as colunas nott null da tabela referenciada. A query não pode conter operadores de conjunto: UNION, EXCEPT e INTERSECT. A query não pode conter o operador DISTINCT. A query não pode conter funções de agregação. A query não pode conter GROUP BY. 19 Linguagem de Definição de Dados (DDL) Alteração de Tabelas: Incluir novas colunas em uma tabela; Excluir colunas existentes em uma tabela; Adicionar a definição de uma restrição em uma tabela; Excluir a definição de uma restrição existente em uma tabela; Modificar uma coluna. 20 10

Linguagem de Definição de Dados (DDL) CREATE TABLE Reserva(V_Numero Numeric NOT NULL, P_CPF VARCHAR(11) NOT NULL); CREATE TABLE Telefone(Numero VARCHAR(15) NOT NULL, P_CPF VARCHAR(11) NOT NULL, PRIMARY KEY (Numero, P_CPF), FOREIGN KEY (P_CPF) REFERENCES Pessoa(CPF)); 21 Linguagem de Definição de Dados (DDL) ALTER TABLE Telefone ADD COLUMN TIPO VARCHAR2(5) DEFAULT FIXO NOT NULL; ALTER TABLE Telefone DROP COLUMN Tipo; ALTER TABLE TELEFONE ADD CONSTRAINT TIPO_TELEFONE CHECK (TIPO IN( Fixo, Movel )); ALTER TABLE TELEFONE DROP CONSTRAINT TIPO_TELEFONE; ALTER TABLE TELEFONE MODIFY (TIPO VARCHAR2(5)); -- para diminuir tamanho a coluna precisa estar vazia. 22 11

Linguagem de Definição de Dados (DDL) ALTER TABLE Reserva ADD CONSTRAINT PK_RESERVA PRIMARY KEY (V_Numero, P_CPF); ALTER TABLE Reserva ADD CONSTRAINT FK_RESERVA_VOO FOREIGN KEY (V_Numero) REFERENCES Voo (Numero); ALTER TABLE Reserva ADD CONSTRAINT FK_RESERVA_PASSAGEIRO FOREIGN KEY (P_CPF) REFERENCES Passageiro (CPF); ALTER TABLE Reserva ENABLE CONSTRAINT FK_RESERVA_PASSAGEIRO; ALTER TABLE Reserva DISABLE CONSTRAINT FK_RESERVA_PASSAGEIRO; 23 Linguagem de Definição de Dados (DDL) Renomear Tabela: Não é um comando SQL:2003. RENAME Pessoa TO Pessoa_Nova; -- Oracle RENAME TABLE Pessoa TO Pessoa_Nova; Deletar Tabela (estrutura): DROP TABLE Pessoa; 24 12

FIM 13