Solução do segundo exercício proposto REDE DE HOTÉIS



Documentos relacionados
1. Domínio dos Atributos

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Banco de Dados Modelo Conceitual, Lógico, Físico, Entidade- Relacionamento (ER) Hélder Nunes

Disciplina de Banco de Dados Parte V

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

Banco de Dados Avançados Banco de Dados Ativo

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

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

Manual Verba Conceito de verba. Funcionamento Básico

Treinamento SISPES. Rede sem fio: sof_eventos Senha:

Prof. Alexandre Unterstell Banco de Dados I

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL

MODELAGEM DE DADOS. Banco de Dados I. O uso da análise e do projeto Orientados a Objetos atenuou a separação! Unidade I

O Komunik é uma ferramenta de comunicação interna que permite a interação completa entre todos os setores de uma empresa.

LINGUAGEM DE BANCO DE DADOS

MANUAL DO CIDADÃO. Para acessar a página do E-SIC clique no link do e-sic na página inicial do site (figura 1):

Entendendo como funciona o NAT

15 4 Operação Avançada do Sistema: Inclusão de Nota Fiscal e seus relacionamentos

Orientação a Objetos

Banco de Dados. Arquitetura e Terminologia. Prof. Walteno Martins Parreira Jr waltenomartins@yahoo.

Lista de exercícios 01

QUALIDATA Soluções em Informática. Módulo CIEE com convênio empresas

TUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo

Sistema de Controle de Solicitação de Desenvolvimento

Abaixo temos listadas as atividades que as Unidades Escolares devem realizar no Sistema de Gestão Escolar/SGE.

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

Trecho retirando do Manual do esocial Versão 1.1

Sistema básico de cadastro em Delphi com banco de dados InterBase.

DOCUMENTO DE REQUISITOS

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

INSTRUMENTO NORMATIVO 004 IN004

Omega Tecnologia Manual Omega Hosting

OCOMON PRIMEIROS PASSOS

Gerenciamento de Contatos

SISTEMA DE GESTÃO DE CREDENCIADOS - SGC MANUAL DO CANDIDATO CREDENCIADOS /

Manual Comunica S_Line

Comunidade de Suporte e Feedback

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Engenharia de Software

SIE - SISTEMA DE INFORMAÇÕES PARA O ENSINO OCORRÊNCIA GERAL

Instituto Politécnico de Beja Escola Superior de Tecnologia e Gestão. GesStock. Engenharia Informática. Base de Dados II

Instalando o WordPress em localhost

Todos os imóveis são comprados pela imobiliária para, então, serem colocados a venda.

Exercícios Propostos de Modelagem parte II

Exercícios Propostos de Modelagem parte II

MANUAL DE UTILIZAÇÃO

Núcleo de Relacionamento com o Cliente. de Relacionamento com o Cliente GUIA PRÁTICO DE USO. Produtos

Manual do Sistema. SMARSA WEB Atendimento de Processos

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Assessoria Técnica de Tecnologia da Informação - ATTI. Projeto de Informatização da. Secretaria Municipal de Saúde do. Município de São Paulo

GUIA MESCLAGEM DE DOCUMENTOS - SLIM

Assessoria Técnica de Tecnologia da Informação - ATTI. Projeto de Informatização da. Secretaria Municipal de Saúde do. Município de São Paulo

English Português. By erickalves 25 Julho, :08. Devido à política (#) de segurança. Encontrar Blogs Crie o seu blog de graça Ganhe prêmios

Treinamento Sistema Condominium Módulo III

1. Quem somos nós? A AGI Soluções nasceu em Belo Horizonte (BH), com a simples missão de entregar serviços de TI de forma rápida e com alta qualidade.

Manual Operacional SIGA

Tesouraria. Apresentação do Módulo Financeiro

Conceitos básicos. Aplicações de banco de dados. Conceitos básicos (cont.) Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada.

Manual Operacional do SISCOAF

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

Modelagem de banco de dados com MySQL Workbench

CICLO DE VIDA DE UM BD

Manual do Programa de Caixa1

Guia Site Empresarial

Sumário INTRODUÇÃO... 3 INTEGRAÇÃO COM O EMPRESÁRIOERP... 3 AGILIDADE NOS PROCESSOS E APOIO AOS CONTROLES INTERNOS... 3 SAC - ATENDIMENTO...

Técnicas e Linguagens para Banco de Dados I

Manual de configuração do sistema

Sumário. Acesso...3 Acesse...3 Xiii... esqueci a senha!...3 Logue...3

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

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

2013 GVDASA Sistemas Cheques 1

CONTABILIDADE COM MÚLTIPLOS PLANOS DE CONTAS

Manual Rotina DAPI MANUAL AVANÇO MANUAL INFORMÁTICA AVANÇO INFORMÁTICA. [Digite seu endereço] [Digite seu telefone] [Digite seu endereço de ]

02 - Usando o SiteMaster - Informações importantes

Versão Liberada. Gerpos Sistemas Ltda. Av. Jones dos Santos Neves, nº 160/174

Certificado Digital. Manual do Usuário

Sumário 1. PORTAL DE ACESSO ALUNO Associe-se Cadastro: Login / Minha área Alterar dados cadastrais

GUIA DE ORIENTAÇÕES ROTEIRO DE CONFIGURAÇÃO DO SOFTWARE CRM PROFESSIONAL ANEXO III ROTEIRO DE CONFIGURAÇÃO - CRM PROFESSIONAL

..:Restaurantes:.. Manual completo do sistema de vendas Restaurantes. Site..:

Celebre este natal e ano novo junto aos seus amigos e familiares distantes.


Software Solid Config

ORIENTAÇÕES BÁSICAS PARA CADASTRO NO PORTAL VIAJA MAIS

Persistência de Dados

BANCO DE DADOS I. Exercícios

Projeto SIGA-EPT. Manual do usuário Módulo Requisição de Almoxarifado SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

Considerações a serem feitas antes da implantação.

Beauty 9.4 Salão de Beleza

Manual Operacional SIGA

Lógica de Programação

A linguagem SQL

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

Termos Gerais de Serviço ANEXO 1

MANUAL DE UTILIZAÇÃO. Produtos: Saúde Pró Faturamento Saúde Pró Upload. Versão:

Transcrição:

Solução do segundo exercício proposto REDE DE HOTÉIS Este exemplo já tem um pouco mais de complexidade devido à quantidade de entidades envolvidas no cenário. Em um primeiro momento a solução poderia ficar da seguinte forma: Neste tipo de cenário, em que uma entidade abrange as outras em cadeia (encadeamento 1:N a melhor técnica é se partir da entidade mais abrangente. Aqui, como a questão é geográfica, entendese, por experiência de vida, que a CIDADE irá abranger todas as demais entidades, ou seja, tudo o mais que houver em determinado hotel (prédio estará confinada àquela CIDADE.

Não podemos esquecer que se não compreendermos com precisão como funciona e quais são as necessidades do negócio para o qual iremos desenvolver nosso sistema, fatalmente iremos criar um modelo inadequado. Quanto menos compreensão, maior a quantidade de erros de modelagem e o nosso sistema não funcionará de forma adequada. Se ficaram pontos obscuros devemos solicitar esclarecimentos do nosso cliente antes de começarmos a modelagem em si. Estamos supondo aqui no nosso exercício que este entendimento está satisfatório. Continuando, sabemos que os prédios ficam nas cidades e não há nenhuma outra entidade no meio. Logo o PREDIO fica na CIDADE. Tipo 1:N onde se pode ter de 0 a N prédios em uma cidade e cada prédio tem que estar no mínimo em uma cidade e no máximo em uma. Da mesma forma vamos ao nível do quarto. O PREDIO tem QUARTO(s. Não é necessário nada neste meio. Até este ponto temos a chamada operação administrativa do sistema. Uma vez pronto o sistema, um usuário administrativo terá que fazer a configuração, ou seja, cadastrar as cidades, os prédios e respectivos os quartos. A partir daí o sistema estaria pronto para a utilização operacional. Aquela em chega um hóspede pedindo um quarto e então o funcionário do balcão verifica se há quarto vago, preenche os dados do hóspede etc. Neste modelo optou-se em vincular a CONTA ao QUARTO e não o HOSPEDE ao QUARTO. É uma decisão do analista de sistemas. Poderia ter vinculado o hóspede ao quarto e vincular a conta a pagar ao hospede? Sim, poderia, mas assim fica melhor. A conta é um arquivo do hotel para futuros (obrigatórios levantamentos de faturamento, por exemplo, já o hóspede é alguém que vem e vai e não necessariamente se vai querer uma estatística sobre ele. Então os dados que mais acessamos devemos deixar com acesso menos burocrático (menos tabelas no meio do caminho. Um QUARTO tem muitas CONTAs. Evidentemente sabemos por experiência que se determinado quarto já tem um hóspede não se pode colocar outro hóspede junto (abrir outra conta para o mesmo quarto ao mesmo tempo. Isto é uma chamada regra do negócio e deverá ser tratada no nível da programação, pois não tem como o banco resolver isso com os recursos de chaves primárias/estrangeiras. Logo, a CONTA deverá ter algum atributo sinalizador informando se está aberta ou fechada. Como posso saber se um determinado quarto está vago? Verificando se existe alguma conta aberta vinculada a este quarto. Se houver: quarto ocupado, se não houver: quarto vago. O atributo DATA_SAIDA pode servir para fazer este controle. Se esta data não estiver preenchida (valor NULL, significa que o quarto está ocupado. O HOSPEDE, então, pode ficar vinculado à sua CONTA e seus acompanhantes vinculados a ele. Aqui vale uma discussão. Em um sistema mais completo se poderia ter um cadastro de hóspedes que já passaram pela rede de hotéis e, cada vez que um determinado hóspede retornar, associar a sua chave primária a uma determinada nova conta em um tipo de cardinalidade 1:N no sentido HOSPEDE para CONTA (um hóspede tem várias contas e uma conta está associada a um único hóspede. Mas este modelo é mais complexo pois também muda a forma de relacionamento dos acompanhantes, de forma que iremos modelar no tipo 1:1. Uma conta tem um hóspede e um hóspede só tem uma conta. O ACOMPANHANTE poderia ser movido para a entidade HOSPEDE, pois ACOMPANHANTE é um HOSPEDE, a única diferença é que ele é acompanhante, não é o hóspede responsável pela conta. Será que um atributo para sinalizar o hóspede responsável não resolveria? Dessa forma eliminaríamos uma entidade. Abaixo os modelos produzidos pelo software modelador DB Designer 4, freeware orientado ao MySQL. A estrutura de Tabelas (Modelo Lógico e o Esquema Físico para geração do banco de dados.

Estrutura de Tabelas Esquema Fisico CREATE TABLE cidade ( idcidade INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome VARCHAR(30 NULL, estado CHAR(2 NULL, PRIMARY KEY(idcidade CREATE TABLE atividade ( idatividade INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome VARCHAR(30 NULL, observacao TEXT NULL, PRIMARY KEY(idatividade

CREATE TABLE predio ( idpredio INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, idcidade INTEGER UNSIGNED NOT NULL, nome VARCHAR(20 NULL, logradouro VARCHAR(50 NULL, bairro VARCHAR(30 NULL, numero CHAR(5 NULL, complemento VARCHAR(20 NULL, PRIMARY KEY(idpredio, FOREIGN KEY(idcidade REFERENCES cidade(idcidade CREATE TABLE quarto ( idquarto INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, idpredio INTEGER UNSIGNED NOT NULL, andar INTEGER UNSIGNED NULL, numero CHAR(10 NULL, tipo CHAR(1 NULL, ar_con CHAR(1 NULL, tv_cabo CHAR(1 NULL, internet CHAR(1 NULL, frigobar CHAR(1 NULL, sauna CHAR(1 NULL, hidro_massagem CHAR(1 NULL, PRIMARY KEY(idquarto, FOREIGN KEY(idpredio REFERENCES predio(idpredio CREATE TABLE conta ( idconta INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, idquarto INTEGER UNSIGNED NOT NULL, entrada DATETIME NULL, saida DATETIME NULL, item VARCHAR(50 NULL, preco DOUBLE NULL, PRIMARY KEY(idconta, FOREIGN KEY(idquarto REFERENCES quarto(idquarto CREATE TABLE hospede ( idconta INTEGER UNSIGNED NOT NULL, responsavel CHAR(1 NULL, nome VARCHAR(50 NULL, logradouro VARCHAR(50 NULL, bairro INTEGER UNSIGNED NULL, numero CHAR(5 NULL, complemento VARCHAR(20 NULL, cidade VARCHAR(30 NULL, estado CHAR(2 NULL, rg VARCHAR(20 NULL, cpf VARCHAR(20 NULL, origem VARCHAR(30 NULL, destino VARCHAR(30 NULL, PRIMARY KEY(idconta, FOREIGN KEY(idconta REFERENCES conta(idconta

CREATE TABLE conta_has_atividade ( idconta INTEGER UNSIGNED NOT NULL, idatividade INTEGER UNSIGNED NOT NULL, PRIMARY KEY(idconta, idatividade, FOREIGN KEY(idconta REFERENCES conta(idconta, FOREIGN KEY(idatividade REFERENCES atividade(idatividade CREATE TABLE monitor ( idmonitor INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, idpredio INTEGER UNSIGNED NOT NULL, nome VARCHAR(50 NULL, endereco TEXT NULL, cpf VARCHAR(20 NULL, rg VARCHAR(20 NULL, PRIMARY KEY(idmonitor, FOREIGN KEY(idpredio REFERENCES predio(idpredio CREATE TABLE monitor_has_atividade ( idmonitor INTEGER UNSIGNED NOT NULL, idatividade INTEGER UNSIGNED NOT NULL, PRIMARY KEY(idmonitor, idatividade, FOREIGN KEY(idmonitor REFERENCES monitor(idmonitor, FOREIGN KEY(idatividade REFERENCES atividade(idatividade