Baixe o app para aproveitar ainda mais
Prévia do material em texto
BANCO DE DADOS I Aula 19 (17/11) Laboratório mario.godoy@univasf.edu.br http://www.univasf.edu.br/~mario.godoy Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação – CECOMP Introdução a Structured Query Language (SQL) Prof.: Mario Godoy 3 Introdução a SQL � Atrativo: � Pequena quantidade de comandos, realiza uma grande quantidade de operações necessárias para definição e manipulação de relações. � Simplicidade. � Grande poder de consulta. � Padrão facilita migração. � Padrão � American National Standard Institute (ANSI) e International Organization for Standardization(ISO) � Versão mais recente: SQL3 (SQL99). � Principalmente conceitos de orientação a objetos. Prof.: Mario Godoy 4 Introdução a SQL � Recursos: � DDL e DML � Criação de visões (views) � Especificações de segurança e autorizações � Definição de restrições de integridade � Controle de transação � Regras para integração com linguagens de programação Prof.: Mario Godoy 5 Introdução a SQL Dois conjuntos principais de comandos: � DDL –Data DefinitionLanguage: � Especificação do esquema da base de dados � DML –Data ManipulationLanguage: � Inserção, remoção, alteração e consultas na instância da base de dados. Prof.: Mario Godoy 6 Introdução a SQL � Vocabulário diverge do Modelo Relacional: � Relação -> Tabela � Tuple -> Linha � Atributo -> Coluna � Maior desvio do Modelo Relacional: Tabelas podem ter linhas idênticas. Prof.: Mario Godoy 7 Introdução a SQL � Alguns comandos da DDL � CREATE SCHEMA � CREATE TABLE � ALTER TABLE � DROP TABLE � CREATE DOMAIN � DROP DOMAIN � CREATE VIEW � DROP VIEW � CREATE INDEX � DROP INDEX Prof.: Mario Godoy 8 Introdução a SQL � Alguns comandos da DML � INSERT � UPDATE � DELETE � SELECT Prof.: Mario Godoy 9 Introdução ao Oracle � Apresentação das principais características do Oracle 10g. � Usuário: SYS � Senha: 123 � Criar um novo usuário. Prof.: Mario Godoy 10 Introdução ao Oracle Carregar e descarregar dados, gerar DDL, visualizar objetos de relatórios e restaurar objetos apagados do banco de dados. Acesso a recursos SQL Visualizar, criar, modificar e apagar objetos de banco de dados Gerenciar as contas de usuários, memória, armazenamento e conexões de rede Linguagem de Definição de Dados (DDL) Prof.: Mario Godoy 12 Criando Tabelas - Create table � Create Table Sintaxe: Create table NomeTabela ( NomeColuna TipoDado [RestriçãoColuna], NomeColuna TipoDado [RestriçãoColuna], NomeColuna TipoDado [RestriçãoColuna], ..., [RestriçãoTabela] ) � NomeTabela é o nome da tabela a ser criada � NomeColuna é o nome da coluna a ser criada � TipoDado é o tipo de dado armazenado naquela coluna � E a Restrição da Tabela e Coluna? Tipos de Dados Prof.: Mario Godoy 14 Tipos de Dados � Em SQL encontramos: � tipos de dados padrão; � uma infinidade de tipos específicos de cada fabricante (Oracle, Microsoft SQL Server, Informix, DB2, etc.). Prof.: Mario Godoy 15 Tipos de Dados � Os tipos mais comuns: � Number(i,d) onde i é o número de dígitos na parte inteira e d número de dígitos na parte decimal, ex: Number(6,2); � Char(n) onde n é o número fixo de caracteres reservados; � VarChar(n) onde n é o número máximo (variável) de caracteres reservados; � Date ou DateTime - armazena dados do tipo Data e Hora; � Os SGBDs oferecem métodos de se escrever e ler datas via funções de conversão. Prof.: Mario Godoy 16 Tipos de Dados � Long ou Blob para armazenar dados especiais � Imagens; � Documentos de texto; � Dados multimídia, etc. � Devem ser interpretados por aplicativos específicos (RealPlayer, Paint, Netscape, etc.); Prof.: Mario Godoy 17 Tipos de Dados Tipos específicos � De acordo com o fabricante podem surgir diversos outros tipos � Memo – Textos longos � Integer, Real, Money, etc. (variações de Number) � Hiperlinks – Para Internet Prof.: Mario Godoy 18 Create Table e tipos de dados Vamos implementar a tabela! Create Table Aluno ( Matricula char(11), RG char(11), Nome varchar(50), DataNasc date, PontosVest number(4) ) insert into Aluno values( 'M001', 'rg1111', 'Joao', '28/12/1990', 80) insert into Aluno values( null, 'rg1111', 'Joao', '28/12/1990', 80) insert into Aluno values( 'M001', 'rg1111', 'Joao', '28/12/1990', 80) S e m C h a v e ! Qual problema ocorre? select * from Aluno Restrições de Colunas e Tabelas Prof.: Mario Godoy 20 � Impõem regras sobre as tabelas. � Evitam que uma tabela seja deletada se houver dependências. � Tipos de restrição: � NOT NULL � UNIQUE � PRIMARY KEY � FOREIGN KEY � CHECK O Que São Restrições? Prof.: Mario Godoy 21 � Chaves Naturais � Alguns atributos se candidatam a chave primária naturalmente, ex: Matrícula, RG, Placa, CPF, Código, etc. � Chaves Artificiais � Gerada pelo sistema. � Nunca se repete � Nunca será nulo Restrições - Chave Primária - primary key Prof.: Mario Godoy 22 � Considerando um domínio de Controle Acadêmico, Matrícula parece mais razoável � RG fica como chave alternativa (também é única, mas não primária) Restrições - Chave Primária - primary key Prof.: Mario Godoy 23 Restrições - Chave Alternativa - unique Campos Únicos � RG pode ficar como chave alternativa (também é única, mas não primária); � ÚNICO, mas eventualmente pode ser nulo. Vamos implementar a tabela! Create Table Aluno ( Matricula char(11) primary key, RG char(11) unique, Nome varchar(50), DataNasc date, PontosVest number(4,0) ) Qual problema ocorre? Drop Table Aluno T a b e l a s c / m e s m o n o m e Prof.: Mario Godoy 24 Declarando Restrições � Restrição de Coluna é uma restrição (constraint) de valores possíveis para uma coluna específica; � Restrição de Tabela é uma restrição (constraint) de valores possíveis para algumas colunas, não necessariamente uma apenas. Prof.: Mario Godoy 25 Restrições - Chave Primária - primary key � Nos Bancos de Dados Relacionais, uma tabela deve ter pelo menos uma coluna que identifique unicamente cada registro; � Chama-se a esta coluna Chave Primária � Uma Chave primária � Não se repete. � Não pode ser Nulo. � É automaticamente indexada pelo BD. Restrição de Coluna: Ex: Create Table Aluno ( Matricula char(11) primary key, RG char(11), Nome varchar(50), DataNasc date, PontosVest number(4) ) Prof.: Mario Godoy 26 � Restrição de tabela � Pode ser usada para chaves múltiplas. Sintaxe CONSTRAINT nome PRIMARY KEY (campo) Vamos Implementar! Create Table Aluno( Matricula number(11), RG char(11), Nome varchar(50), PontosVest number(4,0), CONSTRAINT pk_Matricula PRIMARY KEY (Matricula) ) Restrições - Chave Primária - primary key Prof.: Mario Godoy 27 Restrições - Chave Múltipla ou Composta � Chaves múltiplas - a tupla de colunas tem que ser única e nenhuma delas pode ser nula. Sintaxe de Chaves múltiplas CONSTRAINT nome PRIMARY KEY (coluna1, coluna2, ...) � Exemplo: uma tabela do INSS que registra os funcionários de uma empresa. Vamos Implementar! CREATE TABLE Funcionario ( nome VARCHAR(10), numero NUMBER NOT NULL, serie VARCHAR(10) NOT NULL, CONSTRAINT pk_funcionario PRIMARY KEY (numero, serie) ) Prof.: Mario Godoy 28 Restrições - Chave Múltipla ou Composta Vamos Implementar! CREATE TABLE Funcionario ( nome VARCHAR(10), numero NUMBER NOT NULL, serie VARCHAR(10) NOT NULL, CONSTRAINT pk_funcionario PRIMARY KEY (numero, serie) ) Vamos inserir dados! insert into Funcionario values('Zezinho', 0001, 's1010') insert into Funcionario values('Zezinho', 0002, 's1010') E R R O ? Prof.: Mario Godoy 29 Materiais de apoio � http://www.htmlstaff.org/postgresqlmanual/sql-commands.html (comandos SQL - PostgreSQL) � http://info.abril.com.br/download/4346.shtml (Oracle 10g - free download)
Compartilhar