Banco de Dados 2

Propaganda
BANCO DE DADOS II
SQL Básico
COTEMIG
Gerson Borges
[email protected]
Definição de Banco de Dados
• [Elmasri & Navathe, 2000]
– Um banco de dados é uma coleção de dados
relacionados
• Representando algum aspecto do mundo real
• Logicamente coerente
• Projetado para uma aplicação específica
SGBD
• Um sistema de gerência de banco de dados
(SGBD) é um conjunto de programas que
permite a criar e manter um banco de dados
• Um banco de dados juntamente com o SGBD
que o gerência constitui um sistema de banco
de dados
Característics de um SGBD
• Auto-descrição dos dados
• Isolamento entre programas e dados:
abstração de dados
• Suporte a múltiplas visões dos dados
• Compartilhamento de dados e processamento de transações concorrentes
Vantagens de utilizar um SGBD
• Controle de redundância dos dados
• Controle de acesso (segurança)
• Armazenamento persistente dos dados
• Existência de múltiplas interfaces para os usuários
• Representação de relacionamentos complexos entre os
dados
• Manutenção de restrições de integridade
• Recuperação de falhas
Modelagem
• Modelo conceitual: Conjunto de conceitos usados
para descrever a estrutura de um banco de dados
– Abstração de dados
– Estrutura = tipos de dados + relacionamentos + restrições
• Modelo lógico: Descrição da estrutura de um
banco de dados de acordo com um determinado
modelo de dados
• Modelo físico: Conjunto de dados armazenados em
um banco de dados em um determinado instante de
tempo
Modelo ER
• Entidades:
– Objetos do mundo real que são de interesse para
alguma aplicação
• Atributos:
– Propriedades utilizadas para descrever uma
entidade
Modelo de dados relacional
• O modelo relacional representa um banco de
dados como um conjunto de relações
• Informalmente, uma relação é uma tabela de
valores, onde cada linha representa uma coleção
de dados relacionados
• Cada linha de uma tabela representa um “fato”
que tipicamente corresponde a uma entidade ou
relacionamento do mundo real
Operações
• As operações sobre um BD relacional podem ser
classificadas em:
– Operações de recuperação (select)
– Operações de atualização
• Operações de atualização:
– Inserção (insert)
– Remoção (delete)
– Modificação (update)
Definição de dados em SQL
• Comando CREATE SCHEMA
– CREATE SCHEMA COMPANY AUTHORIZATION JS;
• Comando CREATE TABLE
– CREATE TABLE <nome da tabela>
(<definições de colunas>
<definição da chave primária>
<definições de chaves alternativas>
<definições de chaves estrangeiras>);
CREATE TABLE
• Exemplo de um comando CREATE TABLE
CREATE TABLE EMPLOYEE
(FNAME
VARCHAR(15)
NOT NULL,
MINIT
CHAR,
LNAME
VARCHAR(15)
NOT NULL,
SSN
CHAR(9) NOT NULL,
…
SUPERSSN
CHAR(9),
DNO
INT
NOT NULL,
PRIMARY KEY (SSN),
FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE (SSN)
ON DELETE SET NULL,
FOREIGN KEY (DNO) REFERENCES DEPARTMENT (DNUMBER));
SELECT
• Sintaxe:
SELECT <lista de atributos>
FROM <lista de tabelas>
WHERE <condição>;
• Exemplo:
SELECT BDATE, ADDRESS
FROM EMPLOYEE
WHERE FNAME=‘John’ AND
MINIT=‘B’ AND
LNAME=‘Smith’;
Atributos ambíguos (alias)
SELECT DNAME, DLOCATION
FROM DEPARTMENT, DEPT_LOCATIONS
WHERE DEPARTMENT.DNUMBER =
DEPT_LOCATIONS.DNUMBER;
SELECT E.FNAME, E.LNAME, S.FNAME, S.LNAME
FROM EMPLOYEE AS E, EMPLOYEE AS S
WHERE E.SUPERSSN=S.SSN;
Atributos ambíguos (alias)
SELECT DNAME, DLOCATION
FROM DEPARTMENT, DEPT_LOCATIONS
WHERE DEPARTMENT.DNUMBER =
DEPT_LOCATIONS.DNUMBER;
SELECT E.FNAME, E.LNAME, S.FNAME, S.LNAME
FROM EMPLOYEE AS E, EMPLOYEE AS S
WHERE E.SUPERSSN=S.SSN;
INSERT
INSERT INTO EMPLOYEE
VALUES (‘Richard’,‘K’,‘Marini’,‘653258653’,‘1962-12-30’,
’98 Oak Forest, Katy, TX’,37000,’987654321’,4);
INSERT INTO EMPLOYEE(FNAME, LNAME, SSN, DNO)
VALUES (‘Richard’,‘Marini’,‘653258653’,4);
INSERT INTO EMPLOYEE(FNAME, LNAME, SSN, DNO)
SELECT * FROM INPUT;
DELETE
DELETE FROM EMPLOYEE
WHERE LNAME=‘Brown’;
DELETE FROM EMPLOYEE
WHERE DNO IN (SELECT DNUMBER
FROM DEPARTMENT
WHERE DNAME=‘Research’);
DELETE FROM EMPLOYEE;
UPDATE
UPDATE PROJECT
SET PLOCATION=‘Bellaire’, DNUM=5
WHERE PNUMBER=10;
UPDATE EMPLOYEE
SET SALARY=SALARY*1.1
WHERE DNO IN (SELECT DNUMBER
FROM DEPARTMENT
WHERE DNAME=‘Research’);
Obrigado
• Agora é hora de praticar!
Download