SCC Bancos de Dados e Suas Aplicações

Slides:



Advertisements
Apresentações semelhantes
Ana Paula B. Barboza Ivana Xavier Rodrigues
Advertisements

Tópicos em Banco de Dados
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 I Aula 20.
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
Visões Marilde Santos.
SQL Structured Query Language Juliano Brito da Justa Neves PESCD – Programa de Estágio Supervisionado de Capacitação Docente.
Maurício Edgar Stivanello
SGBD.
Sistema Gerenciador de Banco de Dados SGBD
Restrições de Integridade
Introdução à Engenharia da Computação
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
Material III-Bimestre Wagner Santos C. de Jesus
INSTITUTO FEDERAL FARROUPILHA
SQL Structured Query Language
Linguagem de Banco de Dados - SQL
Linguagem de Banco de Dados - SQL
Bancos de Dados – SQL – parte 1
Banco de dados Profª Kelly Medeiros.
1 SQL (Structured Query Language) Linguagem padrão usada em BD relacionais –SQL1 ou SQL-86: primeira versão do padrão. –SQL2 ou SQL-92: versão usada atualmente.
Banco de Dados Aplicado ao Desenvolvimento de Software
Design Patterns / Acesso ao banco de dados (java.sql)
Tipos de Linguagens do Banco de Dados
Banco de Dados PostgreSQL.
Oracle 9i: SQL e PL/SQL Bruno Celso Cunha de Freitas
Desenvolvendo um script SQL
Linguagem SQL.
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
Criação de Tabelas. CREATE TABLE nome_da_tabela ( >>. >> ) Ex.: SQL SERVER 2008 CREATE TABLE pessoa ( CPF VARCHAR(11) NOT NULL, NOME VARCHAR(100) NOT.
Definições de Esquemas, Restrições básicas e buscas
Triggers (Gatilhos) Professor Esp. Diego André Sant’Ana
Contatos Gladimir Catarino
Banco de Dados I I Comandos SQL
Linguagem SQL Prof. Juliano.
SQL Structured Query Language Linguagem de Consulta Estruturada
©Silberschatz, Korth and Sudarshan (modificado)6.1.1Database System Concepts Capítulo 6: Integridade e Segurança Restrições ao Domínio Integridade Referencial.
7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e.
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
©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.
Conceitos básicos Professor Esp. Diego André Sant’Ana
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).
Daniel Paulo SQL Server 2014 Módulo II Daniel Paulo
©Silberschatz, Korth and Sudarshan (modificado)6.1.1Database System Concepts Capítulo 6: Integridade e Segurança Restrições ao Domínio Integridade Referencial.
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
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.
José Antônio da Cunha 3/6/2016 José Antônio - CEFET-RN 1 Copyright © Dale Carnegie & Associates, Inc.
Banco de Dados para Redes– Aula 03 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Material original: Elaine Parros Machado de Sousa Linguagem SQL – DDL Documentacao PostgreSQL http://www.postgresql.org/docs/8.3/static/index.html

SQL - Introdução SQL linguagem declarativa  não procedural desenvolvida e implementada pelo laboratório de pesquisa da IBM em San Jose –década de 70 inicialmente chamada SEQUEL (Structured English QUEry Language) criada como interface entre usuários e o primeiro SGBDR – SYSTEM R USP – ICMC – GBDI

SQL - Introdução Padrão industrial que atinge grande parte do mercado de SGBDs atrativo: pequena quantidade de comandos para realizar uma grande quantidade de operações simplicidade grande poder de consulta padrão facilita migração USP – ICMC – GBDI

SQL - Introdução O padrão SQL SQL 2008 SQL 2006 SQL 2003 SQL99 (SQL3) USP – ICMC – GBDI

SQL Recursos: DDL – Data Definition Language DML – Data Manipulation Language definição de restrições de integridade criação de visões (views) especificações de segurança e autorizações controle de transação regras para integração com linguagens de programação .... USP – ICMC – GBDI

SQL Dois conjuntos principais de comandos: DDL – Data Definition Language : especificação do esquema da base de dados DML – Data Manipulation Language : inserção, remoção, alteração e consultas na instância da base de dados USP – ICMC – GBDI

DDL e DML DDL: CREATE, DROP, e ALTER TABLE, DATABASE, DOMAIN, EXCEPTION, GENERATOR, INDEX, PROCEDURE, ROLE, SHADOW, TRIGGER, E VIEW DML: SELECT (FROM), DELETE (FROM), INSERT (INTO), UPDATE USP – ICMC – GBDI

DDL e DML DDL: CREATE, DROP, e ALTER TABLE, DATABASE, DOMAIN, EXCEPTION, GENERATOR, INDEX, PROCEDURE, ROLE, SHADOW, TRIGGER, E VIEW DML: SELECT (FROM), DELETE (FROM), INSERT (INTO), UPDATE Existem variações entre fabricantes, tanto com relação ao conjunto de funcionalidades quanto a como estas funcionalidades operam. USP – ICMC – GBDI

DDL - Introdução Alguns comandos da DDL: CREATE TABLE ALTER TABLE DROP TABLE CREATE DOMAIN ALTER DOMAIN DROP DOMAIN CREATE VIEW ALTER VIEW DROP VIEW CREATE INDEX ALTER INDEX DROP INDEX ... USP – ICMC – GBDI

Comandos DDL CREATE TABLE - criar uma tabela, definir colunas e restrições CREATE TABLE tabela ( atrib1 tipo [<restrições da coluna 1>], atrib2 tipo [<restrições da coluna 2>], .... atribn tipo [<restrições da coluna n>], <restrições da tabela> ); PostgreSQL data types http://www.postgresql.org/docs/8.3/static/datatype.html USP – ICMC – GBDI

SQL – Alguns tipos de dado INTEGER | SMALLINT | NUMBER DECIMAL [(precision, scale)] precision - número total de dígitos scale - número de dígitos depois do ponto DOUBLE PRECISION | FLOAT | REAL CHAR(n) - tamanho fixo - n caracteres VARCHAR(n) - tamanho variável máximo de n caracteres BLOB – Binary Large Object – DATE | TIME | TIMESTAMP ... USP – ICMC – GBDI

CREATE TABLE Restrições de colunas NOT NULL DEFAULT valor CHECK(condição) CREATE TABLE tabela ( atrib1 tipo [(tamanho)] [NOT NULL | DEFAULT valor] [CHECK (condição)], atrib2 tipo [(tamanho)] [NOT NULL | DEFAULT valor] ... USP – ICMC – GBDI

CREATE TABLE Restrições de tabela PRIMARY KEY ( <atributos chave primária> ) UNIQUE ( <atributos chave candidata> ) FOREIGN KEY ( <atributos chave estrangeira> REFERENCES tabelaRef [(<chave primária>)] [<ações>] <ações> ON DELETE | ON UPDATE CASCADE | SET NULL | SET DEFAULT CHECK(condição) Um atributo que referencia outro por meio de FOREING KEY não precisa ter o mesmo nome; apenas deve ter um domínio compatível. Assim por exemplo CHAR(5) é compatível com CHAR(10) – muito embora isso possa criar problemas posteriores. Mas INT não é compátivel com VARCHAR(n) por exemplo. USP – ICMC – GBDI

CREATE TABLE Restrições de tabela Há grandes diferenças entre os diferentes fabricantes. Em Oracle, por exemplo, não são possíveis: ON UPDATE SET DEFAULT Atributos que serão chave, devem ser definidos como NOT NULL Em Borland Interbase, é necessário que um atributo que será chave seja explicitamente declarado como NOT NULL, o que não é necessário nem em Oracle nem em PostgreSQL. Restrições de tabela PRIMARY KEY ( <atributos chave primária> ) UNIQUE ( <atributos chave candidata> ) FOREIGN KEY ( <atributos chave estrangeira> REFERENCES tabelaRef [(<chave primária>)] [<ações>] <ações> ON DELETE | ON UPDATE CASCADE | SET NULL | SET DEFAULT CHECK(condição) Um atributo que referencia outro por meio de FOREING KEY não precisa ter o mesmo nome; apenas deve ter um domínio compatível. Assim por exemplo CHAR(5) é compatível com CHAR(10) – muito embora isso possa criar problemas posteriores. Mas INT não é compátivel com VARCHAR(n) por exemplo. USP – ICMC – GBDI

CREATE TABLE CREATE TABLE tabela ( atrib1 tipo [(tamanho)] [NOT NULL | DEFAULT valor] [CHECK (condição)], atrib2 tipo [(tamanho)] [NOT NULL | DEFAULT valor] ... [CONSTRAINT nome da restrição] PRIMARY KEY (<atributos chave primária>), UNIQUE (< atributos chave candidata>), FOREIGN KEY (<atributos chave estrangeira>) REFERENCES tabelaRef [(<chave primária>)] [ON DELETE CASCADE | SET NULL | SET DEFAULT] [ON UPDATE CASCADE | SET NULL | SET DEFAULT], CHECK (condição) );

Exercício Criar as tabelas para o seguinte esquema Aluno = {Nome, Nusp, Idade, DataNasc}    Professor = {Nome, NFunc, Idade, Titulação}  Disciplina = {Sigla, Nome, NCred, Professor, Livro} Turma = {Sigla, Numero, NAlunos}  Matrícula = {Sigla, Numero, Aluno, Ano, Nota} USP – ICMC – GBDI

Comandos DDL ALTER TABLE – incluir/alterar/remover definições de colunas e restrições ALTER TABLE tabela <ação>; <ação>: - ADD novoAtrib tipo [<restrições de coluna>] - ADD [CONSTRAINT nome] <restrição de tabela> - DROP atributo [CASCADE | RESTRICT] - DROP CONSTRAINT nome - ALTER atributo DROP DEFAULT; - ALTER atributo SET DEFAULT <valor>;

ALTER TABLE ADD novoAtrib tipo [<restrições de coluna>] DROP atributo [CASCADE | RESTRICT] CASCADE – todas as visões e restrições (constraints) que referenciam o atributo são removidas automaticamente RESTRICT – atributo só é removido se não houver nenhuma visão ou restrição que o referencie Verificar ALTER para mudar nome e tipo do atributo USP – ICMC – GBDI

Exercício Modificar as tabelas para: Aluno = {Nome, Nusp, Idade, DataNasc}    Professor = {Nome, NFunc, Idade, Titulação}  Disciplina = {Sigla, Nome, NCred, Professor, Livro} Turma = {Sigla, Numero, NAlunos}  Matrícula = {Sigla, Numero, Aluno, Ano, Nota} Exercício Modificar as tabelas para: acrescentar o atributo Cidade de Origem para a tabela Aluno remover o atributo Numero da tabela Turma como fica a tabela matrícula? acrescentar uma restrição para que a nota de um aluno seja sempre maior ou igual a 0 e menor ou igual a 10 remover uma restrição da tabela Disciplina ALTER TABLE ALUNO ADD CidadeOrigem VARCHAR(100) DEFAULT 'Sao Carlos'; ALTER TABLE TURMA DROP Numero CASCADE; -- remove tanto o atributo quanto a fk de Matricula ALTER TABLE MATRICULA ADD CONSTRAINT matricula_ch_nota CHECK(Nota >= 0 AND Nota <= 10); ALTER TABLE DISCIPLINA DROP CONSTRAINT Discip_un_cred; USP – ICMC – GBDI

Comandos DDL DROP TABLE tabela [CASCADE | RESTRICT]; DROP TABLE - exclui uma tabela da base de dados DROP TABLE tabela [CASCADE | RESTRICT]; CASCADE: todas as visões e restrições que referenciam a tabela são removidas automaticamente RESTRICT: a tabela é removida somente se não for referenciada em nenhuma restrição ou visão USP – ICMC – GBDI 20 20

Comandos DDL [<restrições de coluna>] CREATE DOMAIN – cria um nome de domínio para especificar um tipo de dado (álias) CREATE DOMAIN nome AS tipo [<restrições de coluna>] facilita alterações de tipos de dados simplifica legibilidade USP – ICMC – GBDI

CREATE DOMAIN - exemplo CREATE DOMAIN CUSTNO AS INTEGER DEFAULT 9999 CHECK (VALUE > 1000); CREATE DOMAIN PRODTYPE AS VARCHAR(12) CHECK (VALUE IN (’software’, ’hardware’, ’other’, ’N/A’)); USP – ICMC – GBDI 22 22

Exercício Modificar as tabelas para: incluir em Matrícula um atributo de frequência do aluno, cujo tipo é um domínio Frequencia. Aluno = {Nome, Nusp, Idade, DataNasc, CidadeOrigem}    Professor = {Nome, NFunc, Idade, Titulação}  Disciplina = {Sigla, Nome, NCred, Professor, Livro} Turma = {Sigla, Numero, NAlunos}  Matrícula = {Sigla, Numero, Aluno, Ano, Nota} CREATE DOMAIN FREQ AS DECIMAL(2,0) DEFAULT 0 CHECK(VALUE >=0 AND VALUE <= 100); ALTER TABLE ALUNO ADD Frequencia FREQ; USP – ICMC – GBDI

Leitura recomendada R. Elmasri, S. Navathe: Fundamentals of Database Systems – 4th Edition Capítulo 8 A. Silberschatz, H. F. Korth, s. Sudarshan: Sistema de Banco de Dados Capítulo 4 USP – ICMC – GBDI

SQL – Alguns Operadores... =, < , > , <= , >= , <> AND, OR, NOT <atributo ou expressão> BETWEEN valor1 AND valor2 determina se o valor de um atributo ou de uma expressão se encontra dentro de um intervalo especificado de valores <atributo ou expressão> IS NULL determina se o valor de um atributo ou de uma expressão é nulo USP – ICMC – GBDI

SQL – Alguns Operadores... LIKE compara partes de uma sequência de caracteres atributo LIKE ‘%string%’ % compara qualquer substring (número arbitrário de caracteres) atributo LIKE ‘_string_ _’ _ compara qualquer caractere comparação case-sensitive USP – ICMC – GBDI

SQL – Alguns Operadores... <atributo ou expressão> IN <conjunto valores> verifica se o valor de um atributo ou de uma expressão é igual a algum dos vários valores em uma lista especificada <atributo ou expressão> NOT IN <conjunto valores> ... USP – ICMC – GBDI