Projeto de Banco de Dados: Empresa X



Documentos relacionados
Aula Extra Conexão ODBC para aplicações Delphi 7 que usam SQL Server 2005

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Linguagem de Consulta - SQL

SQL (Structured Query Language)

PHP INTEGRAÇÃO COM MYSQL PARTE 1

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

SQL (Structured Query Language)

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

SQL (Structured Query Language)

Profº Aldo Rocha. Banco de Dados

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Linguagem SQL (Parte I)

SQL - Criação de Tabelas

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

SQL. Autor: Renata Viegas

Linguagem SQL (Parte II)

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

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

MANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL

Comandos de Manipulação

A linguagem SQL

EXEMPLOS DE COMANDOS NO SQL SERVER

EXERCÍCIOS PRÁTICOS. Banco de Dados

Structured Query Language (SQL)

Introdução à linguagem SQL

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Treinamento sobre SQL

Linguagem SQL Parte I

Structured Query Language (SQL) Aula Prática

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

SQL Server 2005 Transact SQL DDL. Criando um banco de dados SQL Server 2005

SQL Server Ferramenta de administração. SQL Server Management Studio. 1º passo conectar ao banco de dados 2ª Query (consulta) usando SQL

Introdução ao SQL. Aécio Costa

O que são Bancos de Dados?

Gestão de Tecnologia da Informação

Escrito por Sex, 14 de Outubro de :12 - Última atualização Seg, 26 de Março de :33

SQL (STRUCTUREDQUERY LANGUAGE)

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Comandos DDL. id_modulo = id_m odulo

ADMINISTRAÇÃO DE BANCO DE DADOS

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

Tarefa Orientada 1 Base de Dados Editora

Prof. Omero, pág. 63. Banco de Dados InterBase.

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

Linguagem SQL Sub-linguagem DDL

Banco de Dados. Maurício Edgar Stivanello

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Principais Comandos SQL Usados no MySql

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

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

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

Banco de Dados I Introdução SQL

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Integridade Referencial Interface Visual SQL Server

Linguagem SQL. Comandos Básicos

Banco de Dados. Conversão para o Banco de Dados SisMoura

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

Programação SQL. Introdução

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

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

Linguagem de Consulta Estruturada SQL- DML

Bases de Dados 1º semestre

Prof. Carlos Majer Aplicações Corporativas UNICID

SQL (STRUCTUREDQUERY LANGUAGE)

Material de Banco de Dados

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

Sistema de Controle de Estoque


Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

BANCO DE DADOS I. Exercícios

SQL Structured Query Language

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

Linguagem de Consulta - SQL

Prof.: Clayton Maciel Costa

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Curso PHP Aula 08. Bruno Falcão

MySQL. Prof. César Melo. com a ajuda de vários

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

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

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

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de

DBDesigner 4. NomeFunc 1,N FUNCIONÁRIO. CargaHoraria. MatrFunc

Conteúdo O que é?... 4 Histórico... 4 Onde Baixar?... 4 Diferença entre Firebird e o Interbase... 4 Como instalar?... 4 Instalando o Ibexpert...

SQL. Prof. Márcio Bueno.

Segurança de Dados no PostgreSQL

INNER, CROSS, LEFT, RIGHT E FULL JOINS SIMPLES ASSIM! Wellyngton Luiz Cruz Moreira wlcmoreira@hotmail.com

Disciplina: Unidade V: Prof.: Período:

Persistência de Classe e Auto- Relacionamento em Tabelas de Banco de Dados

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

4.6. SQL - Structured Query Language

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

PostgreSQL Exemplo MDI

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

Transcrição:

Projeto de Banco de Dados: Empresa X Modelo de negócio: Empresa X Competências: Analisar e aplicar o resultado da modelagem de dados; Habilidades: Implementar as estruturas modeladas usando banco de dados; Bases Tecnológicas: Administração de banco de dados; Ambientes/ferramentas de gerenciamento de bancos de dados. (SQL Server 2005). O objeto é criar um projeto de banco de dados para um sistema de informação automatizado de uma empresa para que o departamento de Recursos Humanos gerencie a alocação de funcionários nos departamentos da empresa. Os funcionários são cadastrados por um número de matrícula, nome, data de nascimento e data de matrícula. Cada funcionário deve ser alocado em um e somente um departamento. Os departamentos são cadastrados pelo nome do departamento e por um valor de orçamento. Um departamento pode alocar um ou mais funcionários. O número de matrícula do funcionário poderá ser um número inteiro seqüencial, atribuído automaticamente, obrigatório e que não pode ser repetir entre os funcionários da empresa. O nome, a data de nascimento e a data da matrícula são dados obrigatórios a todos os funcionários da empresa. O nome do departamento é um dado obrigatório e não repetido para cada departamento no sistema. O orçamento de cada departamento pode ser omitido. O nome e a data da matrícula do funcionário, e o nome do departamento são usados constantemente para consultas. FUNCIONARIO N tem 1 DEPARTAMENTO Figura 1 - Modelo Entidade-Relacionamento ENTIDADE ATRIBUTOS RELACIONAMENTO *#Matricula FUNCIONARIO CodDepartamento com Departamento 1:1 Nome Total DataNascimento DataMatricula DEPARTAMENTO *CodDepartamento #Departamento Orcamento Tabela 1 Modelo Lógico-Relacional com Funcionario 1:N Total 1

Projeto de banco de dados em SQL Server 2005: 1. No menu Iniciar, aponte para Todos os programas, Microsoft SQL Server 2005, SQL Server Management Studio. 2. Na caixa de diálogo Connect to Server, verifique o tipo de servidor, o nome e as caixa de autenticação, para saber se estão ok, e clique em Connect para aceitar os valores padrão. 3. No menu File, do SQL Server Management Studio, aponte para New, e clique em Project. A caixa de diálogo New Project surge. 4. Na caixa de texto name, selecione SQL Server Scripts1, escreva EmpresaX e clique em OK. 5. Na janela Solution Explorer clique com o botão direito no diretório Connections do projeto EmpresaX e clique em New Connection. A caixa de diálogo Connect to Server aparecerá. 6. Na caixa de diálogo Connect to Server, clique em OK. 7. Na região Solution Explorer, clique com o botão direito no diretório Queries e clique em New Query. A caixa de diálogo Connect to Database Engine surge. 8. Na caixa de diálogo Connect to Database Engine clique em Connect 9. Na janela Solution Explorer, clique com o botão direito no arquivo SQLQuery1.sql, clique em Rename, e escreva CriarEmpresaX.sql. 10. No arquivo CriarEmpresaX.sql que está aberto na janela Summary, escreva as declaração SQL a seguir: --Criação do Banco de Dados EmpresaX CREATE DATABASE EmpresaX; --Usando EmpresaX USE EmpresaX; --Criação do esquma RecursosHumanos CREATE SCHEMA RecursosHumanos --Criação da tabela Departamento CREATE TABLE Departamento( CodDepartamento INT NOT NULL, Departamento VARCHAR(25) NOT NULL, Orcamento MONEY ); --Adição do campo CodDepartamento como Chave Primária da tabela Departamento 2

ALTER TABLE RecursosHumanos.Departamento ADD CONSTRAINT PK_Departamento PRIMARY KEY (CodDepartamento); --Adição do campo Departamento na lista de índices da tabela CREATE INDEX IDX_Departamento ON RecursosHumanos.Departamento(Departamento); --Criação da tabela Funcionário CREATE TABLE RecursosHumanos.Funcionario( Matricula INT NOT NULL IDENTITY, CodDepartamento INT NOT NULL, Nome VARCHAR(50), DataNascimento DATETIME NOT NULL, DataMatricula DATETIME NOT NULL ); --Adição do campo Matricula como Chave Primária da tabela Funcionário ALTER TABLE RecursosHumanos.Funcionario ADD CONSTRAINT PK_Funcionario PRIMARY KEY (Matricula); --Adição do campo CodDepartamento como Chave Estrangeira da tabela Funcionário ALTER TABLE RecursosHumanos.Funcionario ADD CONSTRAINT FK_Departamento_Funcionario FOREIGN KEY(CodDepartamento) REFERENCES RecursosHumanos.Departamento; --Adição dos campos Nome e DataNascimento na tabela de índices de Funcionário CREATE INDEX IDX_Nome_DtMatricula ON RecursosHumanos.Funcionario(Nome, DataMatricula DESC); 11. Popule as tabelas criadas com dados de teste conforme o código a seguir: USE EmpresaX; VALUES(1, 'Recursos Humanos', 7560.25); VALUES(2, 'Produção', 25320.5); 3

VALUES(3, 'Comercial', NULL); VALUES(21, 'Organização e Métodos', 9700.31); VALUES(5, 'Controladoria', 3950.89); VALUES(6, 'Financeiro', NULL); VALUES(21, 'João da Silva', '1977-11-21', '1982-03-15'); VALUES(3, 'José dos Santos', '1951-10-18', '1989-11-23'); VALUES(3, 'Maria das Dores', '1989-01-10', '1994-05-10'); VALUES(2, 'Pedrina Farias', '1964-08-25', '1983-09-07'); VALUES(1, 'Carlos Margarido', '1942-12-28', '2005-04-04'); VALUES(3, 'Gabriela Duarte', '1974-12-28', '2002-10-09'); VALUES(2, 'Adriano Borges', '1980-03-21', '2001-06-12'); VALUES(5, 'Adriana Santana', '1975-12-21', '2008-07-21'); VALUES(6, 'João da Silva', '1988-01-30', '2008-07-21'); 4

VALUES(2, 'Barbara Cruz', '1971-08-21', '2008-08-02'); VALUES(21, 'Almir Braz', '1948-08-23', '2008-02-25'); VALUES(2, 'Márcia Basílio', '1980-06-21', '2008-10-30'); VALUES(2, 'Roberto Valério', '1980-12-21', '2009-01-17'); 12. Agora consulte as tabelas para saber se elas foram populadas adequadamente, verifique também as estruturas das tabelas, caso seja necessário. --Usar EmpresaX USE EmpresaX; --Seleciona todas as colunas de RecursosHumanos.Funcionario SELECT * FROM RecursosHumanos.Funcionario; --Seleciona todas as colunas de RecursosHumanos.Departamento SELECT * FROM RecursosHumanos.Departamento; --Visualizar todos os "meta-dados" da tabela Departamento EXEC sp_help 'RecursosHumanos.Departamento'; Teste de banco de dados com DML (Insert, Update e Delete) 13. Teste as tabelas usando comandos DML (Insert, Update e Delete) conforme os requisitos mostrados anteriormente: USE EmpresaX; --Teste de tipo de dado UPDATE RecursosHumanos.Funcionario SET DataMatricula = '2008-07-21' WHERE DataMatricula = '2008-21-07'; --Teste de campos que não permitem valores nulos UPDATE RecursosHumanos.Funcionario SET Nome = NULL WHERE Nome = 'Adriano Borges'; /************************ CORREÇÃO: ************/ 5

-- 1. Corrija a atualização feita UPDATE RecursosHumanos.Funcionario SET Nome = 'Adriano Borges' WHERE Nome IS NULL; -- 2. Exclua o índice criado sobre o campo a ser alterado DROP INDEX IDX_Nome_DtMatricula ON RecursosHumanos.Funcionario; -- 3. Altere o campo ALTER TABLE RecursosHumanos.Funcionario ALTER COLUMN Nome VARCHAR(50) NOT NULL; -- 4. Recrie o índice CREATE INDEX IDX_Nome_DtMatricula ON RecursosHumanos.Funcionario(Nome, DataMatricula DESC); /*************** USE SELECT * SEMPRE QUE NECESSÁRIO ********************/ --Teste de integridade dos campos que não permitem valores repetidos UPDATE RecursosHumanos.Departamento SET Departamento = 'Recursos Humanos' WHERE Departamento LIKE 'Produção'; /****** Campo permite valor repetido, para fazer a correção: **********/ -- 1. Corrija a atualização feita UPDATE RecursosHumanos.Departamento SET Departamento = 'Produção' WHERE ((Departamento LIKE 'Recursos Humanos') AND (CodDepartamento = 2)); -- 2. Exclua o índice criado sobre o campo a ser alterado DROP INDEX IDX_Departamento ON RecursosHumanos.Departamento; -- 3. Recrie o índice CREATE UNIQUE INDEX IDX_Departamento ON RecursosHumanos.Departamento(Departamento); /**********************************************************************/ -- Teste de Integridade Referencial DELETE FROM RecursosHumanos.Departamento WHERE CodDepartamento = 5; 6

--Teste de Integridade de Identidade INSERT INTO RecursosHumanos.Departamento(Departamento, VALUES('Contas a Receber', 21320.6); /*script usado como ferramenta para visualizar os dados e os meta-dados*/ -- Visualizar todos os "dados" da tabela Funcionário SELECT * FROM RecursosHumanos.Funcionario; -- Visualizar todos os "dados" da tabela Departamento SELECT * FROM RecursosHumanos.Departamento; 14. Crie um diagrama a partir da opção Database Diagram que está contida no banco de dados EmpresaX que está na janela Summary para confirmar se o grau do relacionamento está correto: Departamento (RecursosHumanos) CodDepartamento Departamento Orcamento Funcionario (RecursosHumanos) Matricula CodDepartamento Nome DataNascimento DataMatricula Figura 2 - Diagrama do banco de dados Empresa X. 15. Uma vez preenchida e livre de erros você pode implementar um código SQL responsável por atender aos requisitos funcionais listados (lembre-se que no seu projeto você só vai implementar esses recursos posteriormente, a medida que avança no curso de TLBD2): Requisitos funcionais do banco de dados: 16. Gerar relatórios: o Mensal: com a matrícula, nome, e data de matrícula de todos os funcionários, dos mais novos para os mais velhos de casa SELECT Matricula, Nome, DataMatricula FROM RecursosHumanos.Funcionario ORDER BY DataMatricula DESC; nome e a data de nascimento dos funcionários aniversariantes do próximo mês SELECT Nome, DataNascimento 7

FROM RecursosHumanos.Funcionario WHERE DATEPART(MM, DataNascimento) = DATEPART(MM, DATEADD(MM, 1, GETDATE())); o Trimestral: com todos os nomes de departamentos e orçamentos maiores que a média dos orçamentos dos departamentos da empresa SELECT Departamento, Orcamento FROM RecursosHumanos.Departamento WHERE Orcamento > (SELECT AVG(ISNULL(Orcamento,0)) FROM RecursosHumanos.Departamento); o Anual com matricula, nome, departamento, idade e tempo de casa de todos os funcionários maiores de 60 anos ou que tenham mais de 25 anos de casa SELECT F.Matricula, F.Nome, D.Departamento, Idade = DATEDIFF(year, DataNascimento, GETDATE()), [Tempo de Casa] = DATEDIFF(year, DataMatricula, GETDATE()) FROM RecursosHumanos.Funcionario AS F JOIN RecursosHumanos.Departamento AS D ON D.CodDepartamento = F.CodDepartamento WHERE ((DATEDIFF(year, DataNascimento, GETDATE()) > 60) OR (DATEDIFF(year, DataMatricula, GETDATE()) > 25)); 8