Baixe o app para aproveitar ainda mais
Prévia do material em texto
BANCO DE DADOS E-book 2 Gratuliano Lucena Neste E-Book: INTRODUÇÃO ����������������������������������������������4 MODELO LÓGICO E PROJETO FÍSICO DE BANCO DE DADOS ��������������� 6 PROJETOS CONCEITUAL X LÓGICO X FÍSICO ��������������������������������������������������������� 8 Entendimento do Projeto Conceitual ����������������������8 Entendimento do Projeto Lógico ����������������������������9 Conceitos de Metodologia Orientada a Objetos ����9 Entidades x Atributos x Relacionamento ������������ 11 Entidades ��������������������������������������������������������������� 12 Atributos ��������������������������������������������������������������� 13 Relacionamentos ������������������������������������������������� 14 RELACIONAMENTOS COM ENTIDADES��������������������������������������������������15 RELACIONAMENTOS COM ATRIBUTOS �������������������������������������������������17 CARDINALIDADES �����������������������������������18 CARDINALIDADES DE ATRIBUTOS ���20 IDENTIFICADOR ATRIBUTO CHAVE ÚNICA �����������������������������������������������������������24 Exemplo de um Projeto Lógico na terceira Forma Normal ������������������������������������������������������ 26 2 Conceitos do Projeto Físico �������������������������������� 29 LINGUAGENS ENVOLVIDAS EM UM SGBD ������������������������������������������������������������31 CRIAÇÃO DE SCRIPTS PARA GERAÇÃO DE BANCO DADOS FÍSICO �����������������������������������������������������������36 CONSIDERAÇÕES FINAIS ��������������������� 40 SÍNTESE �������������������������������������������������������42 3 INTRODUÇÃO É fundamental entender quais elementos compreen- dem tanto o modelo lógico quanto o modelo físico de banco de dados� O Modelo Lógico abrange, em primeiro lugar, enten- der a regra de negócio – que envolve o entendimento dos requisitos dos usuários –; com isso, encaminha- -se uma solução intelectual de dados que atendam simultaneamente os requisitos do usuário e também as funções de inteligência do sistema� Há uma técni- ca de banco de dados para desenvolver um desenho de banco de dados, conforme a solução intelectual desejada� Esta técnica de desenho de banco de dados envol- ve um diagrama gráfico, chamado de Diagrama de Entidade e Relacionamento (DER), onde se planeja a composição de tabelas, formulação dos índices, for- mas de relacionamentos entre tabelas� Basicamente, podemos considerar essa técnica como a modela- gem de dados – nesse momento, gera-se uma do- cumentação por meio da ferramenta Case� O departamento de tecnologia da informação tem uma área chamada Administração de Dados (AD), que avalia o DER, que infere sobre a técnica e sobre o atendimento dos requisitos� E essa área tem poder de barrar o DER, caso haja alguma inconformidade. Esta área também tem a responsabilidade de orientar qual a melhor forma de desenvolver o DER. 4 Após a aprovação do DER pela AD, a Administração de Dados, por meio da ferramenta Case, cria automa- ticamente um “script”, com comandos SQL, e o envia para a área do Administrador de Banco de Dados (DBA), e este se incumbe de dimensionar o espaço em disco para comportar a necessidade do volume de dados� E, então, executa o “script” fornecido pelo AD para a criação dos bancos dados. A fase de criação do banco de dados executada pelo DBA é considerada o modelo físico do banco dados. Em empresas de pequeno porte, o analista de siste- ma executa as funções de AD e DBA. Essa situação, se for executada por analistas, pode comprometer a concepção dos bancos de dados; ou por desconhe- cimento da técnica ou por negligência da técnica, refletindo no desempenho insatisfatório do sistema – por exemplo, demora no tempo de resposta� 5 MODELO LÓGICO E PROJETO FÍSICO DE BANCO DE DADOS Para se construir um banco de dados bem estrutu- rado, há uma técnica chamada de modelagem de dados, em que se analisam as regras de negócio de forma científica – isso ajuda os técnicos de infor- mática a entenderem a necessidade dos usuários� A modelagem de dados é um trabalho exaustivo para distribuir as informações em conjuntos de informa- ções que atendam ao melhor desempenho no tempo de resposta, que se adeque aos requisitos da inteli- gência do sistema: em termos de protótipo de telas, em termos da facilidade operacional para o usuário, em termos de suportar as manutenções necessárias ao longo do ciclo de vida do sistema� Ainda, que se enquadre tecnicamente nas regras de modelagem de banco de dados� Por exemplo, o quanto uma tabela (conjuntos de informações pertinentes a um assunto) está relacionada à outra; relacionamento das tabelas, o quanto uma informação é dependente da outra; qual a forma de acesso por índices de cada tabela� Tudo isso é pensando e idealizado por um analista de sistemas, que primeiro passa por aprovação de um Administrador de Dados (AD). Após isso, a criação do banco de dados passa para um Administrador de Banco de Dados (DBA), que realiza a criação de ban- 6 co de dados por meio de um gerenciador de banco de dados (SGBD). O momento de concepção de uma modelagem de da- dos é conhecido como projeto lógico, em que se gera uma documentação com simbologia gráfica, a qual os técnicos em tecnologia da informação entendem como uma comunicação universal� Isso facilita para o técnico compreender a lógica dos bancos de dados, mesmo que não tenham sido idealizados por ele� A criação dos bancos de dados num gerenciador de banco de dados (SGBD) é conhecida como projeto físico� 7 PROJETOS CONCEITUAL X LÓGICO X FÍSICO O objetivo aqui é conceituar o que contempla cada um dos projetos: Conceitual, Lógico e Físico� Não só é esclarecido o que contém cada fase do projeto, mas explicam-se os conceitos e técnicas de como elaborar uma modelagem de dados, e em qual momento e o que determina a passagem de um projeto para outro� Entendimento do Projeto Conceitual O projeto conceitual compreende uma fase em que o técnico de tecnologia da informação passa por imersão para entendimento dos detalhes das ne- cessidades do usuário, analisa cenários de proces- sos, analisa volumes das informações, analisa os requisitos funcionais das regras de negócios e não funcionais, que envolvem necessidades para acesso e atualização de dados� Após o técnico (Analista de Sistemas/Programador) estar seguro do entendimento de todas as nuances que envolvem as regras de negócios, ele parte para 8 modelar os bancos de dados e entra na fase de pro- jeto lógico� Entendimento do Projeto Lógico O projeto lógico é uma conversão da regra de negó- cio em um modelo gráfico – em que podemos usar ferramenta Case, que gera este artefato gráfico. Conforme mencionado anteriormente, esse artefato é chamado de Diagrama de Entidade e Relacionamento (DER) ou de Modelo de Entidade e Relacionamento (MER), as duas referências referem-se ao mesmo artefato� Vamos estudar de forma mais detalhada as técnicas que envolvem a modelagem de dados� Conceitos de Metodologia Orientada a Objetos Todas as metodologias de desenvolvimento de sis- temas – seja a estruturada, orientada a objetos, ágil – têm a necessidade de modelagem de dados� A orientada a objetos tem alguns conceitos comple- mentares que integram com a modelagem de dados� Dentre esses conceitos é interessante entender al- guns pontos básicos, conforme ilustrado na figura 1. 9 a) CLASSE – Abstração de um conjunto de objetos similares aos do mundo real, conforme exemplo na figura 1. O livro tem características (tamanho, tipo) mostradas nos objetos� b) OBJETO – Qualquer coisa do mudo real ou abs- trata, que tem tamanho e tipo� O objeto é subdivisão da classe; pode ocorrer termos de uma classe que não tem objetos, portanto, a classe é o próprio objeto, pois a estrutura da classe e objeto, tem a mesma es- trutura com tamanho e tipo� No exemplo ilustrado na figura 1, os objetos têm as mesmas características da classe� c) Relação de Classe com Objeto– Todo objeto é uma instância de uma Classe� Todas as instâncias de uma classe têm valores próprios para os atributos especificados na classe. Os objetos são representa- dos por determinada classe e diferenciam-se entre si pelos valores de seus atributos� Os objetos ilustra- dos na figura 1 (Bíblia, Relatório, Dicionário) podem ser encarados todos como livro; portanto, todas as características dos três objetos são as mesmas de um livro� O livro tem capa, páginas, título, índice, introdução, apresentação, glossário, etc� Todas as características são comuns aos objetos citados� Os objetos podem herdar todos os atributos do livro� 10 Objetos Relatório Anual Dicionário Livro Classe Figura 1: Conceitos Básicos Orientados a Objetos� Fonte: Elaboração própria� Entidades x Atributos x Relacionamento Existem três formas básicas para trabalhar a mode- lagem de dados: uma é chamada de entidade e faz referência a algum objeto do mundo real, concreto, por exemplo, uma pessoa; ou abstrato, por exemplo, um departamento� Outra é chamada de atributo, que detalha cada informação relacionada às entidades� E a terceira forma, sobre o relacionamento de de- pendências entre as entidades ou entre os atributos� A modelagem é uma engenharia de dados, que exige muita paciência, coerência, bom senso, conhecimen- to de todas as técnicas de modelagem, entender o 11 objetivo e o sentido de cada informação� Juntando tudo isso, é preciso trabalhar exaustivamente, com muita atenção e concentração para alcançar um re- sultado de sucesso� Entidades É um conjunto de objetos do mundo real sobre os quais se deseja manter informações no banco de dados� É retratado pelo desenho de um retângulo e pode representar objetos concretos (um empregado), con- forme ilustrado na figura 2. Citamos alguns conteú- dos possíveis, chamados de instâncias: João, Pedro, Paulo e Maria� Empregado João Pedro Paulo Maria Figura 2: Entidade Empregado� Fonte: Elaboração própria� 12 Um outro exemplo é para os objetos abstratos (um departamento), conforme ilustrado na figura 3. Citar conteúdos possíveis: Contabilidade, Financeiro, Jurídico e Pessoal� Departamento Contabilidade Financeiro Jurídico Pessoal Figura 3: Entidade Departamento. Fonte: Elaboração própria� Atributos Atributo é um dado, corresponde a cada informação que compõe a entidade� Para cada atributo é neces- sário identificar duas informações; dessas duas, uma é referente à quantidade que comporta o conteúdo do atributo; a outra é referente ao tipo do dado, que pode ser numérico ou alfanumérico� O Atributo também pode estar associado ao relacionamento� Em um DER, uma entidade é representada por meio de um retângulo que contém o nome da entidade� O relacionamento é representado por um losango e, 13 dentro dele, vai o nome do relacionamento� Os atri- butos, ilustrados na figura 4, são representados por um traço mais um círculo� Quando o círculo estiver preenchido, identifica um atributo chave; e quando o círculo estiver vazio, identifica um atributo não chave. Exemplos de atributos de entidades: Empregado Nome Endereço Salário Departamento Descrição Número de Funcionários Figura 4: Atributos� Fonte: Elaboração própria� Relacionamentos O relacionamento é um dos pontos importantes na modelagem de dados, pois representa a arte de fazer uma engenharia de dados com perfeição� 14 RELACIONAMENTOS COM ENTIDADES Na modelagem de dados, há um item que exige um estudo minucioso para relacionar todas as entidades envolvidas num modelo de dados� A solução disso é analisar todas as dependências possíveis entre as entidades; para isso, utiliza-se o atributo para verificar a dependência� Em um DER, um relacionamento (conforme ilustrado na figura 5) é representado por meio de um losango, que liga por traços as entidades� No lugar das linhas também são colocados informações de cardinalida- des – o que será detalhado oportunamente� BA Nome doRelacionamento Figura 5: Representação de notação gráfica de relacionamento. Fonte: Elaboração própria� Quando se analisa o relacionamento entre as entida- des, levando em conta os conteúdos das entidades (conforme ilustrado na figura 6), utiliza-se o conteúdo dos atributos para verificar a dependência. Temos duas entidades: na entidade Empregado, temos um atributo chamado nome; na entidade Departamento, 15 temos o atributo Setor. Analisando a figura, obser- vamos que João trabalha no setor de Contabilidade, e que o setor de Contabilidade tem um empregado de nome João� Note que perguntamos da entidade Empregado na direção da entidade Departamento, e também perguntamos do Departamento na dire- ção do Empregado� Há que se fazer a pergunta nas 2 direções, da esquerda (Empregado) para direita (Departamento) e da direita (Departamento) para a esquerda (Empregado). Para os demais conteúdos, fazemos as mesmas perguntas idênticas ao que foi feito para João, ou seja, para o Pedro, Paulo e Maria� Empregado DepartamentoLotação Diagrama de Ocorrências (instâncias) João Pedro Paulo Maria Contabilidade Financeiro Jurídico Pessoal Figura 6: Exemplo de Relacionamento com instâncias� Fonte: Elaboração própria� 16 RELACIONAMENTOS COM ATRIBUTOS Como foi previamente dito, o atributo é o principal mecanismo para analisar os relacionamentos entre as entidades, levando em conta os conteúdos dos atributos� Podemos observar na figura 7: de um lado o Médico, que tem dois atributos: Nome e Celular; e do ou- tro lado o paciente, com dois Atributos: Nome e Endereço� Temos o relacionamento entre médico e paciente, no centro há o relacionamento Consulta� Note que há o atributo dataDaConsulta, que serve para verificar quais são as consulta agendadas entre o médico e os pacientes. Observamos que a Dra. Flora tem duas datas agendadas com José: uma para o dia 05/02/2009 e outra para o dia 20/03/2009. dataDaConsulta Médico Dr. Paulo Dr. Flora Ana José 22/10/2007 05/02/2009 20/03/2009 Nome Instâncias PacienteConsulta Celular Nome Endereço Figura 7: Exemplo de relacionamento com atributos�Fonte: Elaboração própria� 17 CARDINALIDADES O modelo DER permite expressar cardinalidades mí- nimas e máximas em cada relacionamento� A cardi- nalidade mínima 1 também recebe a denominação de “associação obrigatória”, já que ela indica que o relacionamento deve obrigatoriamente associar uma ocorrência de entidade a cada ocorrência da entidade em questão� Com base na mesma linha de raciocínio, a cardinali- dade mínima 0 recebe a denominação de “associa- ção opcional”� Representação: (cardinalidade mínima, cardinalidade máxima), Cardinalidades Possíveis: (1,1); (1,N); (0,1); (0,N); (N,N). Na figura 8, na cardinalidade mínima (1) e máxima (1) do Cliente, concluímos que o conteúdo do Cliente indica que, no mínimo, 1 obriga a ter um registro de um cliente em toda a entidade cliente, enquanto o máximo poderemos ter um registro de um cliente na entidade Cliente, já na entidade na entidade con- ta, temos obrigatório um mínimo de um registro de conteúdo em toda a entidade conta, enquanto na en- tidade conta, a cardinalidade N, indica que podemos ter mais de uma conta com conteúdo registrado em toda entidade conta� A outra análise a ser feita é comparar a cardinalidade máxima do Cliente com cardinalidade máxima da Conta. Podemos deduzir que um (1) Cliente pode- 18 mos ter várias contas (1 para N, um para muitos); fazendo a pergunta ao contrário, que uma conta está associada somente um cliente, um para um (1,1). Cliente (1,1) (1,N) ContaConta Cliente Figura 8: Exemplo de Cardinalidade� Fonte: ELMASRI, 2005 Podcast 1 19 https://famonline.instructure.com/files/168934/download?download_frd=1 CARDINALIDADES DE ATRIBUTOS Vamos analisar a cardinalidade do próprio atributo, o quanto cada informação pode ter variação de con- teúdo para cada atributo. Podemos classificar em vários tipos de análises� a) Monovalorado: possui um valorúnico para cada atributo mostrado na entidade, conforme ilustrado na figura 9. No mundo real só existe um CPF por pessoa e só existe um nome por pessoa para cada empregado� Quando há homônimos de nomes, o CPF torna único o empregado, só existe um endereço para cada empregado� Empregado CPF Nome Endereço Figura 9: Atributo Monovalorado. Fonte: Elaboração própria� b) Multivalorado: dos atributos mencionados na figura 10, no caso o CPF, Nome e Endereço, são mo- novalorados, por possuírem somente um conteúdo, enquanto que o telefone é multivalorado, porque pode possuir vários conteúdos: tem 2 números ce- lulares, tem um número de telefone residencial, tem 20 um número de telefone comercial e tem um número de telefone de contato� Juntando os telefones, temos cinco números de telefones, por isso esse atributo é considerado multivalorado� Empregado CPF Nome Endereço Telefone (0,N) Figura 10: Atributo Multivalorado� Fonte: Elaboração própria� c) Autorrelacionamento (Relacionamento Unário): neste caso, na entidade Empregado, conforme ilus- trado na figura 11, o atributo Nome ora pode ser de um Supervisor, ora de um subordinado; portanto, no relacionamento, podemos ter um atributo identifi- cado para todos os empregados, o qual é o tipo de empregado, se é supervisor ou subordinado� Empregado N 1 Supervisionado Supervisionado Supervisor Supervisor Supervisiona João Pedro Paulo Maria Figura 11: Autorrelacionamento� Fonte: Elaboração própria� 21 d) Relacionamento Binário: o relacionamento binário envolve a associação de duas entidades� Podemos classificar os relacionamentos binários de várias maneiras, em N:N (muitos-para-muitos), 1:N (um- -para-muitos) e 1:1 (um-para-um). O relacionamento entre as entidades Empregado e Departamento, con- forme mostrado na figura 12, tem uma associação de relacionamento perguntando do empregado na direção do departamento, na ordem 1 para N (um- -para-muitos), e perguntando do departamento na direção do empregado, deduzimos que um depar- tamento qualquer só tem um empregado, na ordem de 1 para 1 (um-para-um). Empregado 1 N DepartamentoTrabalha Figura 12: Relacionamento Binário� Fonte: Elaboração própria� e) Relacionamento Entidade Associativa: Toda vez que temos um relacionamento de N para N (muitos- -para-muitos), no caso mostrado na figura 13, o con- teúdo de um CPF pode ter vários números de contas da entidade Conta Corrente, de um para muitos (1:N), perguntado da entidade conta corrente na direção da entidade cliente; se perguntarmos que o conteúdo de número de conta pode ter vários CPFs (casos de conta conjunta), portanto, conclui-se que o relacio- namento é N para N (muitos-para-muitos). Nesse caso, criamos uma entidade nova chamada Cliente 22 x Conta Corrente, juntando os atributos-chave CPF da entidade Cliente com o atributo Número Conta da entidade Conta Corrente� Essa junção deverá fazer parte da nova entidade Cliente x Conta Corrente; pelo fato desta junção ser chave em outras entidades, cha- mamos esses atributos de chave estrangeira, e ainda juntamos com a chave estrangeira mais um atribu- to: Data de Lançamento, próprio da tabela Cliente x Conta� A entidade Cliente x Conta Corrente terá as chaves compostas dos atributos CPF do Cliente + Número da Conta + Data Lançamento. CPF Numero Conta Data Lançamento CPF Nome N NCliente Cliente x Conta Corrente Numero Conta Descrição Conta CorrentePossui Figura 13: Entidade Associativa. Fonte: Elaboração própria� 23 IDENTIFICADOR ATRIBUTO CHAVE ÚNICA Cada entidade deve ter um identificador, ou seja, um atributo-chave: é o conjunto de um ou mais atributos cujos valores servem para distinguir uma ocorrência única em toda entidade. Exemplo: o atributo CPF está com o círculo do Cliente preenchido de vermelho e também os atributos Número Corredor + Número Prateleira, formando uma chave composta� Essa chave composta garante uma chave como único conteúdo dentro da entidade Prateleira, conforme ilustrado na figura 14, representação do modelo. Cliente CPF Nome Endereço Departamento Número Corredor Número Prateleira Figura 14: Autorrelacionamento� Fonte: Elaboração própria� 24 Os conceitos entre Entidade Forte e Entidade Fraca: na Entidade Forte há um atributo que pode ser chave única para toda a entidade. A figura 15 mostra que o CPF é um atributo que garante ser chave única na entidade EMPREGADO. Nessa situação, podemos considerar a entidade DEPENDENTE como entidade forte, enquanto que na entidade DEPENDENTE, o atri- buto CPF Empregado não é suficiente para garantir como chave única; nesse caso, precisamos criar um atributo artificial – que é chamado de artificial por- que não veio da regra de negócio, é idealizado pelo técnico que cria o modelo de dados� Esse atributo chama-se número do dependente. Com os atributos, podemos agora ter uma chave única para a entida- de DEPENDENTE, constituído por chave composta. Exemplo: CPF 1 – Esposa (Número de Dependente 1), CPF 1 – Filho 1 (Número de Dependente 2), CPF 1 – filho 2 (Número de Dependente 3), com isso, ter- mos as chaves: 11, 12, 13, o que garante a unicidade de chave na entidade� 25 CPF Empregado Nome Número Dependente Endereço 1 NEmpregado CPF Empregado Nome DependenteTem Entidade Forte A entidade tem um atributo (CPF Empregado) que pode ser chave única Entidade Fraca A entidade não tem um atributo que pode ser chave única, é necessário juntar com outro atributo para formar a chave única, fica assim CPF Empregado + Número Dependente (Chave composta). Figura 15: Identificador de Atributo composto para Chave Única. Fonte: Elaboração própria� Exemplo de um Projeto Lógico na terceira Forma Normal A modelagem está na terceira forma normal, con- forme conceitos apresentados no módulo (ilustrado na figura 16). Antes, é necessário esclarecer sobre a utilização das figuras: todas as figuras em cor verde referem-se a entidades que são obtidas das regras de negócios relatadas pelo usuário; todas as figuras em cor laranja são criação do técnico que elabora 26 o modelo de dados, para possibilitar a eliminação de dados redundantes (duplicidades), e também para conceber uma construção de atributos-chave que permitam um acesso ou atualização dos dados com níveis de desempenho que venha a garantir um tempo de resposta com excelência. As figuras em cor azul são os meios de relacionamentos entre as entidades� Em toda a entidade em cor laranja temos uma relação de N:N (muitos-para-muitos), por isso, o técnico na modelagem de dados cria uma entidade chamada de associativa, trazendo os atributos de chave estran- geira das entidades envolvidas no relacionamento� É muito interessante observar que, toda vez que criamos uma entidade associativa, colocamos os nomes das duas entidades associadas� Por exem- plo: Professor x Curso, e isso vale para as demais entidades associativas� O modelo está pronto para uma ferramenta Case – própria para modelagem de dados –, por exemplo, a que foi estudada anteriormente (DBDesignerfork), e então construirmos o Diagrama de Entidade e Relacionamento (DER). 27 Número Turma Sala CPF Aluno Nome Aluno Horário CPF Prof Nome Prof Endereço Prof Código Curso Código Curso Data Validade Descrição Curso Código CursoN N N N N N N N N N N N N N 1 Professor X Curso Professor Código Disciplina Nome Disciplina Números Crédito CPF Prof Código Disciplina Data Validade Disciplina Turma Aluno Curso Curso X Disciplina CPF Prof Número Truma Data Validade CPF Prof CPF Aluno Número Turma Código Disciplina Data Validade CPF Prof CPF Aluno Número Turma Matrícula Data Matrícula Professor X Turma Ministra Ministra Pertence CPF Prof Código Curso Data Validade Professor X Disciplina CPF Prof Número Turma Código Disciplina Data Validade Turma X Disciplina Aluno X Disciplina Turma X Aluno Atuação Pertence Pertence Matrícula Figura 16: Exemplo ProjetoConceitual de Relacionamento Sistema Acadêmico� Fonte: Elaboração própria� 28 Conceitos do Projeto Físico O projeto físico tem como origem o projeto lógico, que é a modelagem de dados, o chamado Diagrama de Entidade e Relacionamento (DER), que pode ser construído com a ferramenta Case DBDesignerfork. Podemos observar que todo atributo-chave tem, an- tes do atributo, um desenho de chave e que, quando temos chaves compostas, há uma divisão em que acima ficam os atributos-chave e abaixo ficam os atri- butos não chave – com um desenho de um losango antes do atributo, conforme ilustrado na figura 18. O relacionamento (conforme ilustrado na figura 17) é indicado por uma linha; nas extremidades da cada linha temos um desenho com os seguintes significados: Entidade A Entidade B Esta Barra Dupla significa que atributo chave ocorre somente uma vez Este trio de linhas, significa muitos, chama pé de galinha Figura 17: Significado do relacionamento. Fonte: Elaboração pró- pria� No relacionamento, podemos analisar que o atributo chave da entidade “A” ocorre somente uma vez, e que o mesmo atributo da entidade “A” ocorre mais de uma 29 vez na entidade “B” (N-Muitos); portanto, temos uma relação de 1:N (um-para-muitos). Podemos observar que os dados estão prontos para geramos o projeto físico, dentro da própria ferramen- ta DBDesignerfork, Figura 18: Exemplo Projeto Lógico de Relacionamento Sistema Acadêmico. Fonte: Elaboração própria� 30 LINGUAGENS ENVOLVIDAS EM UM SGBD Antes de gerarmos o projeto físico, temos de pro- videnciar alguns procedimentos� É preciso ter um gerenciador de Banco de Dados (SGBD) e um ge- renciador de servidor. Devemos seguir os seguintes passos: Baixe um gerenciador de servidor, no caso o XAMP, no link: https://www�apachefriends�org/pt_br/do- wnload�html; Baixe um SGBD, no caso, foi utilizado o MySQL, no link: https://www.mysql.com; Instale o XAMP; Ative o XAMP – duplo clique no ícone do XAMP, um clique no “start” do Apache e no “Start” do MySQL, conforme figura 19� 31 https://www.apachefriends.org/pt_br/download.html https://www.apachefriends.org/pt_br/download.html https://www.mysql.com/ Figura 19: Ativação dos servidores XAMP. Fonte: Elaboração pró- pria. 1. Instale o Workbench; 2. Dê um duplo clique no ícone do Workbench; 3. Acesse o Workbench (conforme figura 20) e, em seguida, crie uma conexão do MySQL no Workbench, conforme demonstrado na figura 21. 32 Figura 20: Acessar o MySQL. Fonte: Elaboração própria� Figura 21: Criação de Conexão do MySQL. Fonte: Elaboração pró- pria�� 1. Acesse o DBDesignerfork e crie todas as tabelas, atributos, índices e relacionamentos (conforme figura 22), clique no símbolo da tabela e solte sobre a área em branco na ferramenta, para criar os atributos e os tipos. Dê duplo clique sobre o símbolo da tabela que você criou na ferramenta� 33 Figura 22: Exemplo para criação de Tabelas, Atributos e Tipos, Índices e Relacionamentos� Fonte: Elaboração própria� 2. Após os cadastramentos das tabelas, atributos, tipos, e relacionamentos, temos que criar uma cone- xão com o MySQLAcesse e o DBDesignerfork. Crie todas as tabelas, atributos, índices e relacionamentos (conforme figura 23). Clique no símbolo da tabela e solte sobre a área em branco na ferramenta para criar os atributos e os tipos; dê duplo clique sobre o símbolo da tabela que você criou na ferramenta� 3. Crie uma conexão com o MySQL, na ferramenta DBDesignerfork. Na barra de ferramenta clique em “Database”, clique em MySQL e informe os dados de conexão do MySQL em “Connection” – “Local Instance MySQL80”. No campo “Username” – “root”, “Password” (nome, no meu caso, deixei em bran- co quando da criação de conexão do MySQL no Workbench). 34 Figura 23: Exemplo para criação de Conexão DBDesignerfork com MySQL. Fonte: Elaboração própria� 35 CRIAÇÃO DE SCRIPTS PARA GERAÇÃO DE BANCO DADOS FÍSICO Na própria ferramenta DBDesignerfork, utilizamos todo o modelo lógico para gerar um script, confor- me modelo na figura 24, para executar na ferramen- ta Workbench para criar o projeto físico com todas as tabelas� Nesse caso, é utilizada a linguagem do SQL – chamada de DDL “Data Definition Language”� Linguagem usada no modelo lógico: Figura 24: Exemplo para criação Script DBDesignerfork com MySQL. Fonte: Elaboração própria� Apresentamos um exemplo do resultado do script gerado pela ferramenta DBDesignerfork: CREATE TABLE Disciplina ( 36 Disciplina_Codigo INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, Disciplina_Nome VARCHAR(40) NULL , Disciplina_Creditos INTEGER UNSIGNED NULL , PRIMARY KEY(Disciplina_Codigo)); CREATE TABLE Professor ( Professor_CPF INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, Professor_Nome VARCHAR(40) NULL , Professor_Endereco VARCHAR(40) NULL , PRIMARY KEY(Professor_CPF)); CREATE TABLE Turma ( Turma_Numero INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, Turma_Sala INTEGER UNSIGNED NULL , Turma_Horario DATETIME NULL , PRIMARY KEY(Turma_Numero)); CREATE TABLE Curso ( Curso_Codigo INTEGER UNSIGNED NOT NULL , Curso_Descricao VARCHAR(40) NOT NULL , 37 PRIMARY KEY(Curso_Codigo)); CREATE TABLE Aluno ( Aluno_CPF INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, Aluno_Nome VARCHAR(40) NULL , PRIMARY KEY(Aluno_CPF)); CREATE TABLE ProfessorXCurso ( Professor_CPF INTEGER UNSIGNED NOT NULL , Curso_Codigo INTEGER UNSIGNED NOT NULL , Professorxcurso_DataValidade DATE NULL , PRIMARY KEY(Professor_CPF, Curso_Codigo) , INDEX ProfessorXCurso_FKIndex1(Professor_CPF) , INDEX ProfessorXCurso_FKIndex2(Curso_Codigo), FOREIGN KEY(Professor_CPF) REFERENCES Professor(Professor_CPF) ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY(Curso_Codigo) REFERENCES Curso(Curso_Codigo) ON DELETE NO ACTION 38 ON UPDATE NO ACTION); O resultado do script gerado pela ferramenta DBDesignerfork, após a execução no workbench: temos o seguinte resultado com a criação de tabelas (figura 25). Assim, concluímos o projeto físico. Figura 25: Execução de Script DBDesignerfork, em forma de Query no workbench. Fonte: Elaboração própria. Podcast 2 39 https://famonline.instructure.com/files/168935/download?download_frd=1 CONSIDERAÇÕES FINAIS É essencial entender os conceitos e os artefatos que compõem o modelo lógico e o modelo físico de banco de dados� O Modelo Lógico abrange, em primeiro lugar, entender a regra de negócio, que é compreender os requisitos dos usuários, é o ponto de partida para desenhar o modelo de dados que compõe o modelo lógico� O modelo lógico serve de insumo para o Diagrama de Entidade e Relacionamento (DER). Este, por sua vez, serve de insumo para o modelo físico� No modelo de dados é o momento em que se planeja a composição de tabelas, formulação dos índices, formas de relacionamentos entre tabelas� O modelo de dados contribui muito para uma con- cepção de banco de dados bem feita, por se tornar flexível às mudanças e, com isso, tornar mais fácil a manutenção da linha de código do aplicativo� A administração de dados (AD) é quem gerencia a modelagem de dados, e tem uma visão crítica para considerar o rigor das técnicas de modelagem de dados, o que ajuda a ter uma modelagem de dados mais consistente� Com isso, evita-se principalmente problemas com o tempo de resposta dos aplicativos� A fase de criação de banco de dados do modelo físico é executada pelo Administrator de Banco de 40 Dados (DBA) que toma como base o modelo de dados� Pelo que estudamos até aqui, você já percebeu que é fundamental dominar todas as técnicas de modela- gem dados para evitar construir um banco de dados de qualquer jeito, sem nenhuma preocupação com o desempenho no tempo de reposta� Referências Bibliográficas & Consultadas 41 • Físico. • Lógico. • Conceitual. Projetos: • Criação de scripts para geração de Banco Dados Físico.• Linguagens envolvidas em um SGBD. Além disso, estudamos também: Entendemos, neste módulo, os elementos que compreendem tanto o modelo lógico quanto o modelo físico de banco de dados. Banco de Dados DE ATH YST • Metodologia Orientada a Objetos. • Entidades x Atributos x Relacionamento SÍNTESE Referências Bibliográficas & Consultadas ASCENCIO, A. F. G.; ARAÚJO, G. S. Estruturas de dados: algoritmos, análise da complexidade e implementações em JAVA e C/C++� São Paulo: Pearson Prentice Hall, 2010� [Biblioteca Virtual] BARBOZA, F� F� M� et al� Modelagem e desenvol- vimento de banco de dados. Porto Alegre: Sagah, 2018� [Minha Biblioteca] BOOCH, G�; RUMBAUGH, J�; JACOBSON, I� UML: guia do usuário. São Paulo: Campus, 2000� CALSARA, A.; MACHADO, C. A. F.; REINEHR, S. S.; BURNETT, R� C� Aderência do RUP à norma NBR ISO/IEC 12207. Dezembro/2002. Disponível em: https://docplayer.com.br/18795196-Aderencia-do- -rup-a-norma-nbr-iso-iec-12207.html� Acesso em: 03 out� 2019� DATE, C. J. Introdução a sistemas de bancos de dados. 7. ed. Rio Janeiro: Campus, 2000. DBDesignerfork. Software livre para modelagem de Dados. Disponível em: https://db-designer-fork. soft112.com. Acesso em: 05 set. 2019. ELMASRI, R�; NAVATHE, S� Sistemas de banco de dados. 4. ed. São Paulo: Pearson, 2005. [Biblioteca Virtual] GANE, C� Análise estruturada de sistemas. 7. ed. Rio Janeiro: LTC, 1993� HAY, D. C. Princípios de modelagem de dados. São Paulo: Makron, 1999. HEUSER, C� A� Projeto de banco de dados� 6�ed� Porto Alegre: Bookman, 2009. [Minha Biblioteca] KRUCHTEN, P. Introdução ao RUP Rational Unified Process. 2. ed. Rio de Janeiro: Ciência Moderna, 2003� MEDEIROS, L. F. Banco de dados: princípios e práti- ca� Curitiba: InterSaberes, 2013� [Biblioteca Virtual] PRESSMAN, R� S� Engenharia de software. 5. ed. São Paulo: Makron Books, 2002. PUGA, S�; FRANÇA, E�; GOYA, M� Banco de dados: implementação em SQL, PL/SQL e Oracle 11g� São Paulo: Pearson Education do Brasil, 2013� [Biblioteca Virtual] https://db-designer-fork.soft112.com/ https://db-designer-fork.soft112.com/ RAMAKRISHNAN, R�; GEHRKE, J� Sistemas de gerenciamento de banco de dados� 3� ed� Porto Alegre: AMGH, 2011� [Minha Biblioteca] RESENDE, D. A. Engenharia de software e sistemas de informação. 2. ed. Rio Janeiro: Brasport, 2003� SETZER, V� W� Banco de dados. 3� ed� Rio Janeiro: Edgard Blücher, 1989� SOMMERVILLE, I� Engenharia de software. 6� ed� São Paulo: Pearson, 1995. TELES, V� M� Extreme Programming. São Paulo: Novatec, 2004� WOLFGANG, P� A� T�; KOFFMAN, E� B� Objetos, abs- tração, estruturas de dados e projeto usando C++� Rio de Janeiro: LTC, 2008� [Minha Biblioteca] Introdução Modelo Lógico e Projeto Físico de Banco de Dados Projetos Conceitual x Lógico x Físico Entendimento do Projeto Conceitual Entendimento do Projeto Lógico Conceitos de Metodologia Orientada a Objetos Entidades x Atributos x Relacionamento Entidades Atributos Relacionamentos Relacionamentos com Entidades Relacionamentos com Atributos Cardinalidades Cardinalidades de Atributos Identificador atributo chave única Exemplo de um Projeto Lógico na terceira Forma Normal Conceitos do Projeto Físico Linguagens envolvidas em um SGBD Criação de Scripts para geração de Banco Dados Físico Considerações finais Síntese
Compartilhar