Banco de Dados Aplicado ao Desenvolvimento de Software

Slides:



Advertisements
Apresentações semelhantes
Aula – Comandos SQL no MYSQL Prof. Francisco Olivar Junior
Advertisements

O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Banco de Dados Prof. Antonio.
Banco de Dados Prof. Antonio.
Banco de Dados I Aula 20.
Banco de Dados Aula 10 – SQL - DDL
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
SQL Renata Viegas.
SQL Structured Query Language
Prof.: Bruno Rafael de Oliveira Rodrigues
Banco de Dados Prof.: Bruno Rafael de Oliveira Rodrigues.
Prof.: Bruno Rafael de Oliveira Rodrigues
Projeto e Organização de BD
Modelo Relacional + SQL
Maurício Edgar Stivanello
SGBD.
SGBD.
Sistema Gerenciador de Banco de Dados SGBD
Sistema Gerenciador de Banco de Dados SGBD
Restrições de Integridade
Profa. Aline Vasconcelos
Introdução à Engenharia da Computação
Material III-Bimestre Wagner Santos C. de Jesus
INSTITUTO FEDERAL FARROUPILHA
FRB - Maio 2002MCS9–1 Regras (Restrições) de Integridade Sistemas comerciais relacionais são muito finos de restrições para garantir a qualidade dos dados.
Sistemas de Informação
Operação de União “JOIN”
SQL Structured Query Language
Linguagem de Banco de Dados - SQL
Bancos de Dados – SQL – parte 1
Banco de dados Profª Kelly Medeiros.
Design Patterns / Acesso ao banco de dados (java.sql)
Tipos de Linguagens do Banco de Dados
SQL Server 2012 Integridade de Dados
Banco de Dados PostgreSQL.
Desenvolvendo um script SQL
Linguagem SQL.
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Banco de dados.
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson.com.br “Está conosco o Senhor dos Exércitos”
Linguagem de Definição de Dados
Curso Técnico em Informática
Definições de Esquemas, Restrições básicas e buscas
Banco de Dados Aplicado ao Desenvolvimento de Software
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
SCC Bancos de Dados e Suas Aplicações
Contatos Gladimir Catarino
Curso de Análise e Desenvolvimento de Sistemas Projeto de Banco de Dados Marcelo da Silveira Siedler.
Banco de Dados I I Comandos SQL
Linguagem SQL Prof. Juliano.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
SQL (Structured Query Language)
1 Introdução à Manipulação de Dados SQL – Structured Query Language  Tabela = Relação  DDL – Data Definition Language  Sub-conjunto do SQL que suporta.
TLBD II – Técnicas e Linguagem para Bando de Dados II
Professor Me. Jeferson Bussula Pinheiro.
Daniel Paulo Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados.
Banco de Dados Maria Augusta (Magu).
Introdução a Bancos de Dados (BD’s)
VBA – Visual Basic para Aplicativos
UCSal – Bacharelado em Informática Banco de Dados Profa. Semíramis Assis
Linguagem de definição de dados - SQL
Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Linguagens de manipulação de Bancos de Dados Prof. Guilherme Tomaschewski Netto
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 4 SQL básica.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Kelyn Schenatto. Definição Linguagem de Consulta Estruturada (Structured Query Language); Desenvolvida inicialmente nos anos 70 nos laboratórios da IBM.
Banco de Dados para Redes– Aula 03 Prof. Me. Ronnison Reges Vidal.
SQL (Structure Query Language)
Transcrição da apresentação:

Banco de Dados Aplicado ao Desenvolvimento de Software Linguagem SQL Banco de Dados Aplicado ao Desenvolvimento de Software

Roteiro Introdução SQL como Linguagem de Definição de Dados (DDL) SQL como Linguagem de Manipulação de Dados (DML): Linguagem de Consulta Linguagem de Atualização

INTRODUÇÃO Álgebra SQL Usuário preocupa-se com a ordem que as operações devem ser executadas Preocupação com a performance e otimização SQL Usuário apenas especifica qual o resultado desejado através de uma consulta declarativa, deixando a otimização com o SGBD

Histórico SEQUEL - Structured English QUEry Language Projetada e implementada no Centro de Pesquisa da IBM como interface de um banco de dados relacional experimental chamado System R

Histórico ANSI (American National Standards Institute) e a ISO (International Standards Organization) juntaram esforços de pesquisa, originando a versão SQL96, ou SQL1 SQL2, aprovada em 1992 (SQL92) SQL3 aprovada em 1999

SQL é mais do que uma linguagem de consulta DDL (Data Definition Language) Linguagem de Definição dos dados Permite a definição da estrutura do banco de dados CREATE ALTER DROP

SQL é mais do que uma linguagem de consulta DML (Data Manipulation Language) Linguagem de Manipulação dos dados Recuperação de dados Possibilita a recuperação dos dados do banco SELECT Atualização dos dados Permite alterações e exclusões de dados já existentes, bem como a adição de novos dados INSERT UPDATE DELETE

Outros comandos da linguagem Controle de acesso Fornece meios para determinar o controle de acesso de usuários aos dados do banco GRANT REVOKE Compartilhamento de dados (transações) Coordena o acesso concorrente de usuários, assegurando que um não interfira no trabalho do outro COMMIT ROLLBACK SAVEPOINT Integridade de dados Permite definir restrições de integridade aos dados do banco CONSTRAINT

A instrução é enviada para o banco de dados Comunicando-se com um SGBD Relacional usando SQL SQL> SELECT loc 2 FROM dept; A instrução SQL é informada Banco de Dados A instrução é enviada para o banco de dados LOC ------------- NEW YORK DALLAS CHICAGO BOSTON Os dados são exibidos SQL (Structured Query Language) O SQL permite comunicar-se com o servidor e tem as seguintes vantagens: Eficiência Facilidade de aprendizagem e uso Funcionalidade completa (O SQL permite definir, recuperar e manipular dados das tabelas.)

Vantagens da Linguagem SQL Independência de fabricante; Portabilidade entre computadores; Redução dos custos com treinamento; Inglês estruturado de alto nível; Múltiplas visões dos dados.

SQL E LINGUAGENS DE PROGRAMAÇÃO Declarações SQL podem ser embutidas em praticamente todas as linguagens de programação modernas Java, C#, Delphi Driver de conexão ao SGBD JDBC ODBC

Objetos do Banco de Dados Objeto Descrição Tabela Unidade básica de armazenamento, composta de linhas de uma ou mais colunas View Representa logicamente subconjuntos de dados de uma ou mais tabelas Seqüência Gera valores de chave primária Índice Melhora o desempenho de algumas consultas Sinônimo Atribui nomes alternativos a objetos Objetos do Banco de Dados Um banco de dados Oracle pode conter várias estruturas de dados. Cada estrutura deve ser descrita no projeto do banco de dados para que possa ser criada durante o estágio de desenvolvimento do banco de dados. Tabela: Armazena dados View: Subconjunto de dados de uma ou mais tabelas Seqüência: Gera valores de chave primária Índice: Melhora o desempenho de algumas consultas Sinônimo: Atribui nomes alternativos a objetos Estruturas de Tabela do Oracle As tabelas podem ser criadas a qualquer momento, até mesmo quando os usuários estiverem usando o banco de dados. Não é necessário especificar o tamanho de nenhuma tabela. O tamanho é definido pela quantidade de espaço alocada no banco de dados como um todo. Entretanto, é importante estimar a quantidade de espaço que uma tabela usará. A estrutura da tabela pode ser modificada on-line.

Convenções para Nomeação Deve começar com uma letra Pode ter de 1 a 30 caracteres Deve conter somente A–Z, a–z, 0–9, _, $ e # Não deve duplicar o nome de outro objeto de propriedade do mesmo usuário Não deve ser uma palavra reservada do SGBD Regras para Nomeação Nomeie tabelas e colunas do banco de dados de acordo com as regras default de nomeação de qualquer objeto do banco de dados Oracle: Nomes de tabela e de colunas devem começar com uma letra e podem ter de 1 a 30 caracteres. Os nomes devem conter somente os caracteres A-Z, a–z, 0–9, _ (sublinhado), $ e # (caracteres legais, mas evite usá-los). Os nomes não devem duplicar o nome de outro objeto de propriedade do mesmo usuário do Oracle Server. Os nomes não devem ser uma palavra reservada do Oracle Server. Diretrizes para Nomeação Use nomes descritivos para tabelas e outros objetos do banco de dados. Nomeie a mesma entidade de modo consistente em diferentes tabelas. Por exemplo, a coluna do número do departamento é chamada DEPTNO nas tabelas EMP e DEPT. Observação: Os nomes não fazem distinção entre maiúsculas de minúsculas. Por exemplo, EMP é tratada com o mesmo nome que eMP ou eMp. Para obter mais informações, consulte o Oracle Server SQL Reference, Release 8, "Object Names and Qualifiers".

SQL como DDL Instruções para definição do esquema da base de dados: CREATE TABLE Cria uma nova tabela na base de dados, especificando nome, atributos e restrições ALTER TABLE Altera definições de uma tabela DROP TABLE Remove uma tabela, quando suas definições não são mais necessárias

CRIAÇÃO DO BANCO DE DADOS CREATE DATABASE Cria um novo banco de dados Sintaxe pode mudar a depender do SGBD CREATE DATABASE <nome_do_BD> CREATE DATABASE EmpresaABC

CRIAÇÃO DE TABELAS CREATE TABLE Colunas são especificadas primeiro, sob a forma: <nomeCol> <domínio> <restrição> Depois Chaves, integridade referencial e restrições de integridade CREATE TABLE <nome_da_tabela> ( <nome_da_col1> <tipo_da_col1> NOT NULL, <nome_da_col2> <tipo_da_col2> NOT NULL, ... PRIMARY KEY <lista_de_nomes_de_col>, FOREIGN KEY <nomes_de_col> REFERENCES <nome_tab_ref>(<nome_da_col_ref>) );

CRIAÇÃO DE TABELAS Exemplo: Fornecedor CREATE TABLE Fornecedor ( Fcod INTEGER NOT NULL, Fnome VARCHAR(20) NOT NULL, Status INTEGER, Cidade VARCHAR(20)); Fornecedor

TIPOS PARA A DEFINIÇÃO DE COLUNAS SQL Padrão (ANSI) CHAR(tamanho) CHARACTER(tamanho) INT INTEGER SMALLINT NUMERIC(precisão,escala) DECIMAL(precisão,escala) DEC(precisão,escala) FLOAT(precisão) REAL DOUBLE PRECISION SQL2 = Padrão + VARCHAR(tamanho) CHAR VARYING(tamanho) CHARACTER VARYING(tamanho) NCHAR(tamanho) NATIONAL CHAR(tamanho) NATIONAL CHARACTER(tamanho) VARYING(tamanho) BIT(tamanho) BIT VARYING(tamanho) DATETIME TIME(precisão) TIMESTAMP(precisão) INTERVAL

RESTRIÇÕES E VALORES DEFAULT NOT NULL Restrição aplicadas a colunas cujos valores não podem ser nulos Valores Default Adiciona-se a cláusula DEFAULT <valor> logo após a restrição: CREATE TABLE Empregado ( ... Sexo CHAR(1) NOT NULL DEFAULT “F”, ... ); Restrição Definição do valor default

CRIAÇÃO DE TABELAS Especificação de chaves: Primária: Estrangeira: PRIMARY KEY(<nomeColuna>), Estrangeira: FOREIGN KEY(<nomeCol>) REFERENCES <NomeTabRefer>, Alternativa: UNIQUE KEY(CPF), (SQL2)

CRIAÇÃO DE TABELAS Exemplo com chave primária: Departamento CREATE TABLE Departamento ( Dcod INTEGER NOT NULL, Dnome VARCHAR(20) NOT NULL, Cidade VARCHAR(20), PRIMARY KEY(Dcod)); Departamento

CRIAÇÃO DE TABELAS Exemplo com chave primária composta Empregado CREATE TABLE Empregado ( Ecod INTEGER NOT NULL, Enome VARCHAR(40) NOT NULL, CPF VARCHAR(15) NOT NULL, Salario DECIMAL(7,2), Cod_Dept INTEGER NOT NULL, PRIMARY KEY(Ecod,ENome)); Empregado

CRIAÇÃO DE TABELAS Exemplo com chave estrangeira Empregado CREATE TABLE Empregado ( ..., CONSTRAINT TrabalhaEm FOREIGN KEY(Cod_Dept) REFERENCES Departamento(Dcod), ... ); Empregado

CRIAÇÃO DE TABELAS Exemplo com chave alternativa Empregado CREATE TABLE Empregado ( ..., UNIQUE KEY(CPF)); Empregado

CRIAÇÃO DE TABELAS Assim... Empregado CREATE TABLE Empregado ( Ecod INTEGER NOT NULL, Enome VARCHAR(40) NOT NULL, CPF VARCHAR(15) NOT NULL, Salario DECIMAL(7,2), Cod_Dept INTEGER NOT NULL, PRIMARY KEY(Ecod,ENome); CONSTRAINT TrabalhaEm FOREIGN KEY(Cod_Dept) REFERENCES Departamento(Dcod), UNIQUE KEY(CPF)); Empregado

Exercício Crie as seguintes tabelas em seu BD, definindo as condições descritas abaixo Fornecedor (Fcod#, Fnome, Status, Cidade) Peca (Pcod#, Pnome, Cor, Peso, Cidade) Projeto (PRcod#, Icod#, PRnome, Cidade) Fornecimento (Fcod#, Pcod#, PRcod#, Quantidade) Instituição (Icod#, nome) Nomes para restrições de chaves primária, estrangeira e alternativa Valor default para o atributo Status, de Fornecedor Todos os atributos de Peca não podem ser nulos A ação de CASCADE em Fornecimento se a tabela de Projeto fosse excluída Qual tabela deve ser criada por último?Pq?

CRIAÇÃO DE TABELAS Exemplo com chave estrangeira CREATE TABLE Empregado ( ..., CONSTRAINT TrabalhaEm FOREIGN KEY(Cod_Dept) REFERENCES Departamento(Dcod), ... );

REMOÇÃO DE TABELAS DROP TABLE Ex.: Elimina completamente a tabela (vazia ou não) DROP TABLE <nome_da_tabela>; Ex.: DROP TABLE Empregado; Não há como recuperar a tabela removida

ALTERAÇÃO DE TABELAS ALTER TABLE ALTER TABLE <nome_da_tabela> <alteração>; Adicionar uma coluna: ALTER TABLE Empregado ADD Telefone VARCHAR(30) ADD sexo CHAR(1) DEFAULT ‘F’;

ALTERAÇÃO DE TABELAS Excluir restrições de chave primária ALTER TABLE Empregado DROP PRIMARY KEY; Exclusão de uma chave estrangeira Pode ser feita somente se ela recebeu um nome quando foi definida (através de CONSTRAINT): DROP FOREIGN KEY TrabalhaEm;

ALTERAÇÃO DE TABELAS Adicionar chave estrangeira: ALTER TABLE Empregado CONSTRAINT Supervisao ADD FOREIGN KEY(Codesupervisor) REFERENCES Empregado(codemp);

Integridade referencial Cuidados Quando colunas são excluídas ou alteradas Quando o valor do atributo da chave estrangeira é modificado na tabela referenciada Ações disparadas quando ocorrem violações: SET NULL CASCADE ON DELETE ON UPDATE

Integridade referencial Exemplo, na tabela de Empregado CREATE TABLE Empregado ( ... FOREIGN KEY(Cod_Dept) REFERENCES Departamento(Dcod) ON DELETE SET NULL ON UPDATE CASCADE, ... ); Ou seja... Na remoção da linha que contém o valor da chave estrangeira, colocar nulo à coluna (se a coluna admitir NULL) Na alteração do valor da chave estrangeira, alterar em cascata as chaves que referenciam este valor

Exercício Altere as tabelas criadas anteriormente para : Fornecedor (Fcod#, Fnome, Status, Ccod#, fone) Cidade (Ccod#, Cnome, uf) Peça (Pcod#, Pnome, Cor, Peso, Ccod#) Projeto (PRcod#, Jnome, Ccod#) Fornecimento (Fcod#, Pcod#, PRcod#,Quantidade) Observe que a tabela Instituição não existe mais.