Considere as Relações Funcionários (F) e Dependentes (D), com o seguinte esquema simplificado:



Documentos relacionados
Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

Conceitos básicos. Funcionario SIAPE Nome Lotacao Cargo Salario Admissao

BANCO DE DADOS I. Exercícios

Banco de Dados. Professora: Luciana Faria

Linguagem SQL (Parte II)

Structured Query Language (SQL) Aula Prática

ALTERANDO O NOME DA TABELA ALTER TABLE DEPTO RENAME TO TAB_DEPARTAMENTO

SQL. Prof. Roger Cristhian Gomes

Banco de Dados I Introdução SQL

Fundamentos de Banco de Dados Postgre com Sql

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

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

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

Introdução à linguagem SQL

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe

SQL (Structured Query Language)

Linguagem SQL. Comandos Básicos

SQL (Structured Query Language)

SQL (Structured Query Language)

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

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

BANCO DE DADOS SQL. Aprendendo a manipular dados. Banco de dados utilizado: PostgreSQL.

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Introdução ao SQL. Aécio Costa

Comandos de Manipulação

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

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

A linguagem SQL

UFG - Instituto de Informática

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

S U B G R U P O S D M L E D Q L : A L T E R A N D O E A P A G A N D O D A D O S E M U M A T A B E L A

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g

Linguagem de Consulta Estruturada (SQL)

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

Disciplina: Banco de Dados Tema: SQL Parte 2

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011

Banco de Dados Loja Virtual. CLIENTE(ClienteId, PrimNome, UltNome, Endereço, Cidade, Cep, Telefone)

Projeto de Banco de Dados: Empresa X

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018

SQL Linguagem de Definição de Dados

Linguagem de Consulta - SQL

Introdução ao PostgreSQL

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

INSERT INTO shop VALUES (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),(3,'C',1.69), (3,'D',1.25),(4,'D',19.95);

Tabelas. Banco de Dados I MySQL

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

Prova de Fundamentos de Bancos de Dados 2 a Prova

Revisão de Bancos de Dados

BCD29008 Banco de dados

BANCO DE DADOS WEB AULA 7. criação de tabelas. professor Luciano Roberto Rocha.

SQL (STRUCTUREDQUERY LANGUAGE)

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

MySql. Introdução a MySQL. Andréa Garcia Trindade

Técni n c i as e L i L n i g n u g age g ns n p ara r Ba B nc n o d e D ados I ACCESS

Bases de Dados. DDL Data Definition Language

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

Teste Exemplo Revisão da tentativa 1

Utilizando o Postgres - comandos SQL para a manipulação de dados

Programação em Banco de dados

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

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

SQL (Tópicos) Structured Query Language


Structured Query Language (SQL) Ambiente Simplificado de um SGBD

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>

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

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

José Antônio da Cunha

PSI Linguagem de Definição de dados. Módulo 15

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

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

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges

L Q S m e g a u g n Li A

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

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

Bancos (Bases) de Dados

Informática I. Aula 8. Aula 8-25/09/2006 1

Prof. Dr. Joaquim Assunção Banco de Dados. SQL (parte 4) DDL Restrições

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)

SQL (STRUCTUREDQUERY LANGUAGE)

Conceitos SQL SQL 19/03/2017 O que é dado? O que é BD? O que é uma informação? O que é SGBD? O que é SQL? O que é BD? O que é SGBD?

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S )

Programação SQL. Introdução

Profº Aldo Rocha. Banco de Dados

SQL Básica. Andre Noel

Modelo Relacional 4 SISTEMAS DE INFORMAÇÃO E BASES DE DADOS UNIVERSIDADE DE LISBOA FACULDADE DE CIÊNCIAS DEPARTAMENTO DE INFORMÁTICA

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Transcrição:

Álgebra Relacional Considere as Relações Funcionários (F) e Dependentes (D), com o seguinte esquema simplificado: Funcionários (numf, nomef) Dependentes (numf, nomed, par) Numf referencia Funcionários (numf) Onde, numf: número do funcionário, nomef: nome do funcionário, nomed: nome do dependente e par: parentesco, que pode ser um dentre: filho, filha, esposo, esposa, etc. Observe que em Dependente, numf é uma chave estrangeira que referencia a chave primária de Funcionários. Abaixo é mostrada uma possível instância dessas relações. Funcionários Numf Nomef 01 Antonio Silva 02 José Morais 03 Maria Pereira 04 Ana Silva Dependentes Numf Nomed Par 01 Alice Filha 02 Alice Esposa 02 Clara Filha 03 José Filho Pede-se 1) Crie as duas tabelas no banco de dados 2) Insira as linhas acima nas respectivas tabelas 3) Escreva a expressão da álgebra relacional para obter a junção natural F x D e mostre a relação resultante da junção natural. 4) O funcionário 4 aparece na junção natural? Explique. Obtenha as expressões da álgebra relacional que correspondem às seguintes consultas. 5) Quais os nomes e parentescos de todos os dependentes? 6) Quais os funcionários (números de ) possuem dependentes filhas? 7) Quais funcionários não possuem dependentes? 8) Dê os nomes dos funcionários que possuem algum dependente. 9) Dê o nome de cada funcionário que possui uma dependente chamada Alice?

10) Quais funcionários (número) não tem Alice como dependente (isto é, nenhuma dependente chamada Alice)? 11) Escreva o comando select correspondente para cada expressão da álgebra relacional, execute-o na base de dados e transcreva os resultados de cada comando select. Analise se o resultado está correto de acordo com o que foi pedido em cada consulta. 1) Create table Funcionarios (numf number(2) not null, Nomef varchar2(20) not null, Constraint func_pk primary key (numf)); Create table Dependentes (numf number(2) not null, Nomed varchar2(15) not null, Par varchar2(10) not null, Constraint dep_pk primary key (numf, nomed), Constraint func_dep_fk foreign key (Numf) references Funcionarios (numf) ); 2) Insert into funcionarios values ('01','Antonio Silva'); Insert into funcionarios values ('02','José Morais'); Insert into funcionarios values ('03','Maria Pereira'); Insert into funcionarios values ('04','Ana Silva'); Insert into dependentes values ('01','Alice','Filha'); Insert into dependentes values ('02','Alice','Esposa'); Insert into dependentes values ('02','Clara','Filha'); Insert into dependentes values ('03','José','Filho');

3) a) Funcionarios x Dependentes ou funcionarios.numf = dependentes.numf (Funcionarios X Dependentes) b) Funcionarios x Dependentes Numf Nomef Nomed Par 01 Antonio Silva Alice Filha 02 José Morais Alice Esposa 02 José Morais Clara Filha 03 Maria Pereira José Filho 4) O funcionário 04 não aparece na relação resultante porque ele não tem dependentes. 5 Quais os nomes e parentescos de todos os dependentes? П nomed, par (Dependentes) 6 Quais os funcionários (números de ) possuem dependentes filhas? П numf ( par = Filha (Dependentes)) П funcionarios. numf, funcionários.nomef ( par = Filha and funcionários.numf=dependentes.numf (Dependentes x Funcionarios)) Select funcionarios. numf, funcionarios.nomef From Dependentes, Funcionarios Where par = Filha and funcionários.numf=dependentes.numf;

7 Quais funcionários não possuem dependentes? П numf (Funcionários) П numf (Dependentes) 8 Dê os nomes dos funcionários que possuem algum dependente. П nomef (Funcionários x Dependentes) ou П nomef ( funcionarios.numf = dependentes.numf (Funcionários x Dependentes)) 9 Dê o nome de cada funcionário que possui uma dependente chamada Alice? П nomef (Funcionários x ( nomed= Alice (Dependentes)) ou П nomef ( funcionarios.numf = dependentes.numf ^ nomed= Alice (Funcionarios X Dependentes)) 10 Quais funcionários (número) não tem Alice como dependente (isto é, nenhuma dependente chamada Alice)? П numf (Dependentes) - П numf ( nomed= Alice (Dependentes)) 11 ------ 3) Select * From funcionarios, dependentes Where funcionarios.numf = dependentes.numf; NOMEF NOMED PAR ---------- -------------------- ---------- --------------- ---------- 1 Antonio Silva 1 Alice Filha 2 José Morais 2 Alice Esposa 2 José Morais 2 Clara Filha 3 Maria Pereira 3 José Filho 5) Select nomed, par From dependentes;

NOMED PAR --------------- ---------- Alice Filha Alice Esposa Clara Filha José Filho 6) Select numf from dependents Where par = 'Filha'; ---------- 1 2 7) select numf from funcionarios minus select numf from dependentes; ---------- 4 8) П nomef (Funcionários x Dependentes) ou П nomef ( funcionarios.numf = dependentes.numf (Funcionários x Dependentes)) Select nomef From funcionarios, dependentes Where funcionarios.numf = dependentes.numf; NOMEF -------------------- Antonio Silva José Morais José Morais Maria Pereira

9 П nomef (Funcionários x ( nomed= Alice (Dependentes)) ou П nomef ( funcionarios.numf = dependentes.numf ^ nomed= Alice (Funcionarios X Dependentes)) Select nomef From funcionarios, dependentes Where funcionarios.numf = dependentes.numf And nomed= Alice ; NOMEF -------------------- Antonio Silva José Morais 10 П numf (Dependente) - П numf (б nomed= Alice (Dependentes)) Select numf From funcionarios Minus Select numf From dependentes Where nomed= Alice ; --------- 3 4 12) Adicione a coluna Endereço com 30 posições na tabela Funcionários Alter table Funcionarios add Endereço varchar(30);

Não pode ser obrigatória, pois já existem linhas inseridas. Ela só pode se tornar obrigatória após ser informado valor nesta nova coluna para todas as linhas já existentes. 13) Informe um endereço diferente para cada funcionário já existente Update funcionarios set Endereço = R D. Pedro II, 34 Nova Odessa where numf = 1; Update funcionarios set Endereço = R Sete, 34 Sumaré where numf = 2; Update funcionarios set Endereço = Av Rebouças, 87 Sumaré where numf = 3; Update funcionarios set Endereço = Av Cillo, 598 SBO where numf = 4; 14) Modifique a coluna Endereço tornando-a obrigatória Alter table Funcionarios modify Endereço not null; 15) Adicione a coluna Cidade com 20 posições na tabela Funcionários Alter table Funcionarios add Cidade varchar(20); Demonstrando: SQL> desc funcionarios Nome Nulo? Tipo ----------------------------------------- -------- -------------- NOT NULL NUMBER(2) NOMEF NOT NULL VARCHAR2(20) ENDEREÇO NOT NULL VARCHAR2(30) CIDADE VARCHAR2(20) 16) Remova a coluna Cidade da tabela Funcionários Alter table Funcionarios Drop column Cidade; Demonstrando

SQL> desc funcionarios Nome Nulo? Tipo ----------------------------------------- -------- ------------ NOT NULL NUMBER(2) NOMEF NOT NULL VARCHAR2(20) ENDEREÇO NOT NULL VARCHAR2(30) 17) Apague os dependentes do Funcionário José Morais Delete Dependentes where numf = 2; 18) Remova a chave estrangeira de Dependentes. Alter table Dependentes Drop constraint func_dep_fk; 19) Crie novamente a chave estrangeira de Dependentes Alter table Dependentes Add Constraint func_dep_fk foreign key (Numf) references Funcionarios (numf);