Caderno de Atividades
Sistemas de Banco de Dados
Semestre 3
Tecnologia em Análise e Desenvolvimento de Sistemas
CLIQUEAQUIPARA VIRARAPÁGINA
Caderno de Atividades Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina Sistemas de Banco de Dados Coordenação do Curso Emir Mansur Smaka Autor Douglas Fugita de Oliveira Cezar
FICHA TÉCNICA Equipe de Gestão Editorial Regina Cláudia Fiorin João Henrique Canella Fiório Priscilla Ramos Capello Análise de Processos Juliana Cristina e Silva Flávia Lopes
Revisão Textual Alexia Galvão Alves Giovana Valente Ferreira Ingrid Favoretto Julio Camillo Luana Mercúrio Diagramação Célula de Inovação e Produção de Conteúdos
Chanceler Ana Maria Costa de Sousa
Pró-Reitor de Graduação Eduardo de Oliveira Elias
Reitora Leocádia Aglaé Petry Leme
Pró-Reitor de Extensão Ivo Arcangêlo Vedrúsculo Busato
Pró-Reitor Administrativo Antonio Fonseca de Carvalho
Pró-Reitora de Pesquisa e PósGraduação Luciana Paes de Andrade
Realização: Diretoria de Planejamento de EAD José Manuel Moran Barbara Campos Diretoria de Desenvolvimento de EAD Thais Costa de Sousa Gerência de Design Educacional Rodolfo Pinelli Gabriel Araújo
Como citar esse documento: CEZAR, Douglas Fugita de Oliveira. Sistemas de Banco de Dados. Valinhos: Anhanguera Educacional, 2014. p. 1-148. Disponível em: . Acesso em: 3 fev. 2014.
© 2014 Anhanguera Educacional Proibida a reprodução final ou parcial por qualquer meio de impressão, em forma idêntica, resumida ou modificada em língua portuguesa ou qualquer outro idioma.
Índic e
Tema 01: Conceitos Fundamentais de Banco de Dados
6
Tema 02: Introdução ao Modelo Entidade-Relacionamento
22
Tema 03: Modelagem E-R: Conceitos e Fundamentos
40
Tema 04: Modelagem E-R: Técnicas e Ferramentas
60
Tema 05: Arquitetura de Banco de Dados
80
Tema 06: Mapeamento do Modelo Entidade-Relacionamento para o Modelo Relacional
96
Tema 07: Introdução à Linguagem SQL
116
Tema 08: Segurança e Recuperação de Dados
134
Tema 01
seções
Conceitos Fundamentais de Banco de Dados
s e õ ç e S
Tema 01
Conceitos Fundamentais de Banco de Dados
Introdução ao Estudo da Disciplina Caro(a) aluno(a). Este Caderno de Atividades foi elaborado com base no livro Sistema de Banco de Dados, dos autores Abraham Silberschatz, Henry Korth e S. Sudarshan, Editora Elsevier, 2012. Livro-Texto 670.
Roteiro de Estudo: Sistemas de Banco de Dados
Douglas Fugita de Oliveira Cezar
CONTEÚDOSEHABILIDADES Conteúdo Nessa aula você estudará: • Tabelas, registros e campos. • A evolução dos modelos de bancos de dados. • Introdução ao modelo de banco de dados relacional.
9
CONTEÚDOSEHABILIDADES Habilidades Ao final, você deverá ser capaz de responder as seguintes questões: • Quais os principais modelos de bancos de dados? • O que são tabelas, registros e campos? • O que são chaves primárias e chaves estrangeiras? • Como é feito o relacionamento em um banco de dados de modelo relacional?
LEITURAOBRIGATÓRIA Conceitos Fundamentais de Banco de Dados Os homens mais primitivos utilizavam as pinturas rupestres, ao passo que os egípcios utilizavam hieróglifos. Anotações relacionadas às atividades de vendas diárias, tábuas de maré, variações de clima e temperatura, fatos do cotidiano e também fatos históricos. Exemplo como esses evidenciam que, desde sempre, o armazenamento de dados acompanha a humanidade em todas suas fases de evolução. Dado pode ser definido como a matéria-prima ou o elemento básico para a geração de informações. É um elemento básico para um banco de dados. Talvez você possa ter presenciado a cena, ou então visto em algum filme, de salas de clínicas médicas ou hospitais com grandes armários que armazenavam pastas que, por sua vez, continham fichas referentes ao paciente, aos procedimentos realizados, às receitas médicas e a diversas outras informações pertinentes ao ambiente clínico. Esse tipo de organização pode ser entendido como um banco de dados. Banco de dados pode ser definido como uma coleção de dados persistentes referentes a um tema específico. A função dessa coleção é atender às necessidades de seus usuários, sendo elas a de uma simples consulta ou a de geração de informações ou conhecimento. 10
LEITURAOBRIGATÓRIA O mesmo estilo de armazenamento representado por meio de armários, gavetas, pastas e fichas pode ser transportado para o mundo computacional. Assim surgiu o primeiro modelo de estrutura de banco de dados. O modelo baseado no gerenciamento de arquivos se utilizava da estrutura básica do sistema operacional, composta de diretórios e arquivos. Para armazenar os dados nesse modelo, estes são mantidos em um único arquivo. Por exemplo, os dados de clientes são armazenados sequencialmente em um arquivo distinto ao arquivo que armazena os dados sobre vendas realizadas. Nesses arquivos existem linhas e colunas, tal qual uma planilha que você provavelmente já conhece. Cada coluna é denominada campo, que é a menor unidade de informação existente em um banco de dados. Uma linha que contém um conjunto de campos é denominada registro, devendo haver dados em cada um dos campos. Um conjunto de campos e registros é denominado de tabela. A facilidade e a simplicidade na estrutura correspondem a uma grande vantagem desse modelo, o que, em contrapartida, contrasta com sua dificuldade em relacionar os dados e com a grande chance de haver dados redundantes nesses arquivos. Na década de 1960, foi desenvolvido pela IBM o IMS (Information Management System), que possui como base o modelo hierárquico. Esse modelo representou um grande avanço nas técnicas de armazenamento de dados, utilizando como referência uma estrutura em árvore. Essa estrutura possibilita a organização dos registros através de ligações, nas quais cada registro possui vários campos e cada campo possui somente um valor. Cada um dos registros possui dois segmentos: o superior e o subordinado. Eles são utilizados para a ligação com um outro registro, em um relacionamento pai-filho. O registro pai pode possuir vários filhos, mas os registros filhos só podem possuir um registro pai, como demonstrado na figura 1.1.
11
LEITURAOBRIGATÓRIA Figura 1.1 – Modelo hierárquico
Nó RAIZ segmento superior José São Paulo 01/09/75 segmento subordinado segmento superior 15 caneta R$ 45,00 segmento subordinado
segmento superior José Olinda 25/03/83 segmento subordinado segmento superior 10 caneta R$ 30,00 segmento subordinado
segmento superior 5 calculadoras R$ 50,00 segmento subordinado
Fonte: Elaboração do autor.
Houve grandes melhoras na forma que o armazenamento era feito, e, pela primeira vez, os dados de diferentes assuntos poderiam ser relacionados. No entanto, essa estrutura começou a perder prestígio quando foi necessário armazenar uma grande quantidade de dados. Além disso, houve problemas em razão de suas próprias premissas, em casos em que os relacionamentos necessitavam ser representados como vários registros pai para um único registro filho. Na tentativa de melhorar o modelo hierárquico, foi criado o modelo de rede, representado por um diagrama similar ao hierárquico. No entanto, este novo modelo poderia relacionar cada registro filho com vários pais diferentes. Sua estrutura utilizava termos como entidades e atributos (registros e itens do registro, respectivamente). As melhorias propostas acarretaram em um sistema com buscas mais rápidas e complexas, pois o modelo não dependia de um único registro para levar aos próximos. No entanto, o modelo de rede apresentava os mesmos problemas de seu antecessor, ao se deparar com grandes quantidades de dados, ou então na difícil manutenção das estruturas quando alterações eram solicitadas. O próximo modelo apresentou melhoras significativas quando comparado aos modelos hierárquico e de rede. O modelo relacional se destaca pela simplicidade e flexibilidade, utilizando como base os mesmo conceitos dos arquivos de dados. Os dados são armazenados em tabelas que, por sua vez, são compostas de campos e registros.
12
LEITURAOBRIGATÓRIA O banco de dados relacional foi criado com base na teoria matemática de conjuntos, e, por isso, seus componentes principais supracitados também podem ser conhecidos por seus correspondentes em linguagem matemática. Os campos podem ser chamados de atributos, os registros são chamados de tuplas, e as tabelas são conhecidas como relação. A estrutura pode se comparada a uma planilha eletrônica, com suas linhas (tuplas) e colunas (atributos). O conteúdo de um conjunto linha-coluna específico é denominado célula, tanto para a planilha eletrônica como para o banco de dados relacional. A célula é responsável por conter o valor do atributo que, por definição, deve ser um valor atômico. Entende-se por valor atômico um dado que está em uma forma que não consiga ser divisível. Por exemplo, o registro de um telefone no padrão “+99 (99) 9999-9999” pode ser considerado um valor não atômico, visto que ele pode ser dividido em partes como código do país, código da localidade, prefixo e sufixo. Outro conceito importante para o banco de dados relacional é o domínio do atributo, representado pelo conjunto de valores possíveis de serem assumidos por um atributo. Por exemplo, para o atributo “preço” da relação “produto”, o domínico do atributo é o conjunto de todos os valores possíveis para esse campo, sendo impossível a utilização de valores negativos. Para o domínio do atributo “cor” da relação “produto”, deve ser considerado o conjunto de todas as cores possíveis. O modelo orientado a objetos surgiu com a missão de armazenar dados complexos, tais como sistemas de informações geográficas (SIG) ou ferramentas de Computer Aided Desing (CAD) e Computer Aided Manufacturing (CAM). O banco de dados orientado a objetos busca agrupar os dados separados em objetos com tipos estruturados, tal como um tipo “endereço” que é composto pelos atributos “rua”, “número”, “bairro” e “cidade”. Outros recursos como herança e aninhamentos estão disponíveis no modelo orientado a objetos. Para modelar bancos de dados orientados a objetos utiliza-se a linguagem Unified Modeling Language (UML). A utilização dos modelos apresentados foi possível por meio da utilização de sistemas que facilitassem o acesso aos dados e fossem capazes de manipular essas informações, implementando as regras de cada modelo. Cada um desses sistemas é chamado de Sistema de Gerenciamento de Banco de Dados (SGBD).
13
LEITURAOBRIGATÓRIA Os SGBDs são responsáveis por evitar problemas tais como redundância de dados, dificuldade nos acessos, isolamento de dados, problemas de integridade, problemas de atomicidade ou problemas com acesso concorrente. Para que os dados e as estruturas do banco de dados sejam manipulados, os SGBDs apresentam linguagens específicas para essas tarefas, sendo a Structured Query Language (SQL) a mais utilizada nos dias de hoje. As linguagens podem ser divididas em duas partes diferentes: a linguagem de manipulação de dados e a linguagem de definição de dados. A linguagem de manipulação de dados (DML) é a responsável por inserir, atualizar, excluir e recuperar os dados e as informações no banco de dados. A linguagem de definição de dados (DDL) é utilizada para criar, modificar ou excluir a parte estrutural do banco de dados, incluindo as consistências necessárias para inserção de dados, permissões de acesso e implementação do esquema criado pelo projetista. O esquema do banco de dados é apenas uma parte do projeto do banco de dados. Um projeto de banco de dados é composto de vários documentos que determinam projetos em diferentes níveis de visão. O primeiro modelo é baseado na visão descritiva, que é a mais próxima do mundo real. Esse documento busca trazer o maior número de informações e características para que as necessidades relatadas durante o levantamento sejam satisfeitas. Após, o projeto do banco de dados segue para o modelo conceitual, no qual o projetista começa a adequar o documento descritivo a um modelo de dados. Assim é iniciada uma das fases mais críticas do projeto, na qual será definida uma visão macro de todo o banco de dados, descrevendo quais informações serão armazenadas e o relacionamento entre elas. Um modelo bastante utilizado para essa etapa é o modelo entidade-relacionamento (MER). O projeto do banco de dados segue então para o projeto lógico, no qual o modelo conceitual será transformado em um modelo de dados específico para a implementação estrutural do banco de dados. Esse projeto é sucedido pelo projeto físico, que deve conter os detalhes da arquitetura que será utilizada no projeto.
14
LINKSIMPORTANTES Quer saber mais sobre o assunto? Então: Sites Leia o artigo “Utilização de um banco de dados relacional no Sistema de Informações Geográficas (SIG) para o cadastro florestal”, de Marcos Vinicius Giongo Alves, Henrique Soares Koehler e Benício de Melo Filho, 2004. Disponível em: . Acesso em: 1 fev. 2014. Esse artigo demonstra o uso de um banco de dados relacional em uma tarefa de alta complexidade, que é a integração com um sistema de informações geográficas. Saiba mais sobre banco de dados na nuvem, por meio do artigo “Banco de dados na nuvem – coloque sua cabeça nas nuvens”, de Jin Zhang, 2011. Disponível em: . Acesso em: 1 fev. 2014. Descreve a forma de adoção da computação em nuvem e o oferecimento de banco de dados como serviço.
Vídeos “Teoria de banco de dados – Aula 1”. Disponível em: . Acesso em: 1 fev. 2014. Vídeo que explica de forma simples e com vários exemplos a teoria sobre bancos de dados relacionais. 15
AGORAÉASUAVEZ Instruções: Chegou a hora de você exercitar seu aprendizado por meio das resoluções das questões deste Caderno de Atividades. Essas atividades auxiliarão você no preparo para a avaliação desta disciplina. Leia cuidadosamente os enunciados e atente-se para o que está sendo pedido e para o modo de resolução de cada questão. Lembre-se: você pode consultar o Livro-Texto e fazer outras pesquisas relacionadas ao tema.
Questão 1:
a) Projeto descritivo.
Assim como citado no texto, os armários de metal em uma clínica médica com suas pastas e fichas podem representar uma organização de um banco de dados e, em sua maioria, já foram substituídos por sistemas computacionais. Com quais outras situações, em seu dia a dia, você já se deparou que poderiam ser substituídas por um conjunto de sistemas e banco de dados?
b) Projeto conceitual.
Questão 2: O projeto do banco de dados que contém as informações mais próximas ao mundo real é:
16
c) Projeto lógico. d) Projeto físico.
Questão 3: Marque “V” (verdadeiro) ou “F” (falso) para as afirmações relacionadas com o modelo hierárquico I. ( ) Os registros possuem dois segmentos: superior e inferior. II. ( ) Os registros possuem um relacionamento pai-filho com outro registro.
AGORAÉASUAVEZ III. ( ) Um registro pode estar relacionado somente com um registro filho.
podendo se relacionar com vários registros pais e também vários registros filhos.
IV. ( ) Um registro pode estar relacionado somente com um registro pai.
Qual alternativa traz a palavra adequada para completar a lacuna do parágrafo anterior?
V. ( ) Um registro deve, obrigatoriamente, estar relacionado com um registro pai. VI. ( ) Um registro deve, obrigatoriamente, estar relacionado com um registro filho.
a) Hierárquico. b) De rede. c) Relacional. d) Orientado a objetos.
Questão 4:
Questão 6:
Marque “V” (verdadeiro) ou “F” (falso) para as afirmações referentes ao modelo relacional.
Quais eram os principais problemas encontrados no modelo de dados em rede?
I. ( ) As relações são compostas por tuplas e tabelas. II. ( ) O modelo relacional faz o uso de chaves primárias e chaves secundárias para realizar um relacionamento. III. ( ) A intersecção entre linhas e colunas é denominada célula. IV. ( ) Célula é o atributo principal de uma tupla. V. ( ) Domínio do atributo é o conjunto de valores possíveis de serem assumidos.
Questão 5: O modelo ______________ se utiliza de registros que possuem segmentos específicos para se interligarem com outros registros de forma hierárquica, mas,
Questão 7: Quais vantagens o modelo relacional apresentou sobre seus antecessores?
Questão 8: Quais as funções das duas partes de uma linguagem de banco de dados?
Questão 9: Qual a diferença entre o projeto físico e o projeto lógico, componentes do projeto de banco de dados?
Questão 10: Qual a relação entre tabelas, campos e registros? 17
FINALIZANDO Neste tema, você aprendeu o histórico da evolução dos modelos de dados até o modelo mais utilizado atualmente, que é o modelo relacional. Viu também os principais componentes de um banco de dados relacional, que são as tabelas, os campos e registros, e também as chaves primárias e estrangeiras, responsáveis pelo relacionamento entre tabelas em um mesmo banco de dados. Caro aluno, agora que o conteúdo dessa aula foi concluído, não se esqueça de acessar sua ATPS e verificar a etapa que deverá ser realizada. Bons estudos!
REFERÊNCIAS CONCEITOS gerais de banco de dados. Disponível em: . Acesso em: 1 fev. 2014. PRESTES, F. Banco de dados. Apostila, ETEC, s.d. Disponível em: . Acesso em: 1 fev. 2014. SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de Banco de Dados. São Paulo: Elsevier, 2012. TAKAI, O. K.; ITALIANO, I. C.; FERREIRA, J. E. Introdução a banco de dados. Apostila, DCC-IME-USP, 2005. Disponível em: . Acesso em: 1 fev. 2014.
18
GLOSSÁRIO CPF: cadastro de pessoas físicas. Documento de registro de todo cidadão brasileiro na Receita Federal. Dados persistentes: dados que, em razão de sua natureza, devem ser armazenados e guardados para futuras consultas. Hieróglifos: cada um dos sinais da escrita de civilizações, tais como a dos egípcios e a dos maias. Pinturas rupestres: representações artísticas gravadas nas paredes de cavernas e abrigos ou em rochas ao ar livre pelos homens do período pré-histórico. Premissas: Suposições que servem como base para um projeto ou uma ideia e que são consideradas verdadeiras para que o projeto ou a ideia tenham uma conclusão.
GABARITO Questão 1 Resposta: A citação dependerá do conteúdo trazido pelo aluno. Exemplos como listas telefônicas, agendas, fichas de controle de estoque, etc. podem ser considerados. Questão 2 Resposta: Alternativa A. 19
GABARITO Questão 3 Resposta: Sequência correta: F, V, F, V, V, F. Questão 4 Resposta: Sequência correta: F, F, V, F, V. Questão 5 Resposta: Alternativa B. Questão 6 Resposta: Os principais problemas do modelo de rede é o armazenamento e a recuperação de grandes quantidades de dados e seu alto custo de manutenção. Questão 7 Resposta: O modelo relacional possui alta simplicidade e flexibilidade, sendo sua representação similar a uma planilha eletrônica. Questão 8 Resposta: A linguagem de manipulação de dados (DML) é a responsável por inserir, atualizar, excluir e recuperar os dados e as informações no banco de dados. A linguagem de definição de dados (DDL) é utilizada para criar, modificar ou excluir a parte estrutural do banco de dados, incluindo as consistências necessárias para inserção de dados, permissões de acesso e implementação do esquema criado pelo projetista. Questão 9 Resposta: O projeto lógico define o esquema que atenderá a todas as necessidades indicadas no projeto conceitual. No projeto físico, as informações do projeto lógico são utilizadas para especificar os recursos e a arquitetura necessários para a implantação. Questão 10 Resposta: As tabelas são compostas por campos e registros, que podem ser representados por colunas e linhas, respectivamente.
20
Tema 02
seções
Introdução ao Modelo EntidadeRelacionamento
s e õ ç e S
Tema 02
Introdução ao Modelo EntidadeRelacionamento
Introdução ao Estudo da Disciplina Caro(a) aluno(a). Este Caderno de Atividades foi elaborado com base no livro Sistema de Banco de Dados, dos autores Abraham Silberschatz, Henry Korth e S. Sudarshan, Editora Elsevier, 2012. Livro-Texto 670.
Roteiro de Estudo: Sistemas de Banco de Dados
Douglas Fugita de Oliveira Cezar
CONTEÚDOSEHABILIDADES Conteúdo Nessa aula você estudará: • O contexto no qual o modelo entidade-relacionamento é inserido. • Entidades e conjunto de entidades. • Relacionamentos e conjunto de relacionamentos. • Atributos e os tipos básicos para um MER.
25
CONTEÚDOSEHABILIDADES Habilidades Ao final, você deverá ser capaz de responder as seguintes questões: • Qual a importância do modelo entidade-relacionamento para um projeto de banco de dados? • O que é um conjunto de entidades? • Quais são os possíveis tipos de atributos em uma entidade? • Quando dividir um atributo composto em vários atributos simples?
LEITURAOBRIGATÓRIA Introdução ao Modelo Entidade-Relacionamento Ao iniciar um projeto de um banco de dados, o maior desafio de um projetista é levar para um meio computacional a representação de um aspecto do mundo real. A primeira tarefa é conseguir um modelo descritivo do mundo real, podendo ser obtido com o uso de ferramentas ou técnicas de entrevistas com os usuários, desenho de diagramas, textos, relatórios etc. Esse descritivo deve conter os problemas a serem solucionados, as necessidades e os pré-requisitos, as premissas, as regras de negócios e todos os dados que possam auxiliar o projetista a entender melhor todo o projeto. Em posse de um modelo capaz de descrever o mundo real, o projetista deve trazer o projeto a um modelo conceitual, que servirá para definir como será implementado o banco de dados, bem como todos os atributos das entidades e o relacionamento entre elas. O modelo conceitual será representado pelo modelo entidade-relacionamento (MER), que será o nosso objeto de estudo neste caderno.
26
LEITURAOBRIGATÓRIA O modelo entidade-relacionamento pode ser destacado pela simplicidade em representar a estrutura lógica de um banco de dados. O MER pode ser dividido em três componentes básicos: • Conjunto de entidades. • Conjunto de relacionamentos. • Atributos. Uma entidade é uma representação simplificada de algo existente no mundo real. A palavra “algo” utilizada na frase anterior pode ser entendida como qualquer coisa que possa se relacionar com o modelo entidade-relacionamento que será proposto pelo projetista, sendo ela tangível ou não. A entidade é definida por um conjunto de atributos, sem os quais não seria possível identificála de forma única. Cada um dos funcionários de uma empresa pode ser considerado uma entidade, visto que cada um possui um número de matrícula, um CPF e, talvez, um ID de funcionário que o identifica de maneira exclusiva. Sendo assim, um conjunto de entidades é um conjunto de elementos que compartilham os mesmos atributos. Por exemplo, o conjunto de funcionários pode ser representado pela entidade “funcionários”. Assim, um conjunto de funcionário possuirá todos os campos descritos na entidade, tais como data de admissão, salário, cargo etc. Cada um dos atributos de uma entidade deve possuir um valor associado a ele. Como exemplo, na figura 2.1 mostra-se o fragmento de uma base de dados que representa a entidade “funcionários”. Figura 2.1 – Conjunto de entidades “funcionários”
ID
Nome
Cargo
Salário
Data de Admissão
Data de Demissão
29
José
Analista Sr.
R$ 4.200,00
9/4/2007
22/3/2012
35
Hugo
Analista Jr.
R$ 2.100,00
15/1/2008
NULL
16
Luiz
Coordenador
R$ 5.300,00
19/4/2002
NULL
Fonte: Elaboração do autor. 27
LEITURAOBRIGATÓRIA Outro fato que deve ser levado em consideração é que uma entidade pode fazer parte de vários conjuntos de entidades. No caso anterior, o conjunto de funcionários pode fazer parte da entidade “funcionários”, mas também pode ser parte das entidades “pessoas”, como mostrado na figura 2.2. Figura 2.2 – Conjunto de entidades “pessoas”
ID
Nome
Cidade
UF
Data de Nascimento
42
José
São Paulo
SP
23/5/1982
85
Hugo
Porto Alegre
RS
10/10/1986
27
Luiz
Campo Grande
MS
21/9/1984
Fonte: Elaboração do autor.
O MER destaca também a interação e a associação entre as várias entidades através de um “relacionamento”. A figura 2.3 destaca o relacionamento “recursos do projeto”, que envolve as entidades “projetos” e “funcionários”, demonstrando os funcionários que estiveram envolvidos em cada projeto. Figura 2.3 – Conjunto de Relacionamento “Recursos do Projeto”
ID
Projeto
ID
Nome
Cargo
1
Projeto Alfa
29
José
Analista Sr.
2
Projeto Bravo
35
Hugo
Analista Jr.
3
Projeto Charlie
16
Luiz
Coordenador
Fonte: Elaboração do autor.
Existem casos nos quais o relacionamento pode acontecer entre duas entidades do mesmo conjunto de entidades. Essas duas entidades podem possuir diferentes papéis. A figura 2.4 demonstra a entidade “funcionário” com o papel de líder e também com o papel de liderado no conjunto de relacionamento “hierarquia”. A este tipo de relacionamento no qual uma entidade interage com ela mesma se dá o nome de relacionamento recursivo.
28
LEITURAOBRIGATÓRIA Figura 2.4 – Conjunto de relacionamento “hierarquia”
ID
Nome
Cargo
ID
Nome
Cargo
29
José
Analista Sr.
29
José
Analista Sr.
35
Hugo
Analista Jr.
35
Hugo
Analista Jr.
16
Luiz
Coordenador
16
Luiz
Coordenador
Funcionários - papel “líder”
Funcionários - papel “liderado”
Fonte: Elaboração do autor.
Os relacionamentos, assim como as entidades, podem possuir atributos. Para esses casos, dá-se o nome de atributos descritivos. Os atributos descritivos abrem a possibilidade de registrar dados que não pertencem a nenhuma entidade, mas se fazem necessários para o conjunto relacionamento. Por exemplo, a quantidade de tempo em que um recurso foi destinado a um projeto específico, conforme a figura 2.4. Figura 2.4 – Atributos descritivos
ID
Projeto
1
Projeto Alfa
2
Projeto Bravo
3
Projeto Charlie
Carga Horária 160 h
ID
Nome
Cargo
29
José
Analista Sr.
Carga Horária 80 h
35
Hugo
Analista Jr.
16
Luiz
Coordenador
Fonte: Elaboração do autor.
Os atributos utilizados em um modelo entidade-relacionamento podem ser: • Simples ou compostos. • De valor único ou multivalorados. • Armazenados ou derivados. 29
LEITURAOBRIGATÓRIA Um atributo pode ser considerado simples quando não pode ser dividido em outras partes, como, por exemplo, a cidade onde nasceu o funcionário. Por outro lado, um atributo “endereço” é considerado composto, visto que pode ser dividido em vários outros atributos, tais como tipo do logradouro, logradouro, número, bairro, complemento, cidade, estado e CEP. A escolha pelo uso ou não do campo composto passa pelo crivo da necessidade que a divisão do campo terá para o projeto. Um campo “data de nascimento” pode ser considerado composto de dia, mês e ano, para casos em que seja importante definir isoladamente o mês ou ano de nascimento. Caso essa diferenciação não se faça necessária, o atributo pode ser mantido como um atributo simples. Atributos de valor único são, como o nome já diz, aqueles atributos que se definem somente por um valor. O nome do funcionário é único dentro daquela entidade, bem como o nome de um projeto. No entanto, uma entidade pode carregar consigo um atributo que seja multivalorado, ou seja, que aceite mais de um valor, tal como os vários telefones de um funcionário ou uma lista de dependentes. Os atributos geralmente são características da própria entidade. Os atributos armazenados ficam disponíveis para consulta, independentemente de a entidade estar relacionada com outra. Mas, em alguns casos, atributos podem ser gerados a partir de outras entidades, sendo estes os atributos derivados. Um atributo da entidade “projeto” pode ser a quantidade de recursos atrelados a ele, que pode ser definida verificando-se a quantidade de funcionários que estão em um relacionamento com aquela entidade. Outro exemplo é a quantidade de funcionários que respondem para um líder. Você reparou que as tabelas utilizadas como exemplo neste caderno possuem um campo “ID” para identificação dos registros e que, dentro da mesma tabela, eles não se repetem? Para facilitar o relacionamento entre as tabelas e a busca por informações dentro do banco de dados, cada registro da tabela deverá possuir um campo, ou um conjunto de campos, com valores exclusivos ao registro, com o qual será possível localizar o registro em caso de uma busca. A esta informação é dada o nome de chave primária ou primary key (PK). Um exemplo clássico de chave primária é o CPF para o caso de pessoa física, situação em que cada pessoa tem um número referente ao CPF, não existindo dois números iguais. Outro caso que pode ser considerado como de chave primária é a numeração sequencial, tal como números de notas fiscais.
30
LEITURAOBRIGATÓRIA O relacionamento entre tabelas é feito através da gravação da chave primária de uma tabela em uma outra tabela, associando-se entre si. A esse campo ou conjunto de campos gravados na segunda tabela dá-se o nome de chave estrangeira ou foreign key (FK). Pode ser dado como exemplo de relacionamento a geração de uma nota fiscal: o banco de dados possui a tabela “notas_fiscais” com a chave primária “número_nota_fiscal”. O banco de dados também possui a tabela “itens_notas_fiscais” e possui a chave primária “número_item_notas_fiscais”. No entanto, a relação das duas tabelas fica por conta da chave estrangeira “número_nota_fiscal” gravada na segunda tabela, como mostrado na figura 2.5. Com essa relação é possível identificar os registros relacionados entre as duas tabelas por meio de uma consulta. Figura 2.5 – Diagrama de esquema
notas_fiscais
Itens_notas_fiscais
• numero_nota_fiscal(PK)
• numero_item_nota_fiscal(PK)
• codigo_cliente(FK)
• numero_nota_fiscal(FK)
• data_emissao
• codigo_produto(FK)
• data_entrega
• quantidade
• valor_liquido
• valor_unitario
• valor_impostos
• valor_total
• valor_frete • valor_bruto Fonte: Elaboração do autor.
Na figura 2.5 também podem ser observadas outras chaves estrangeiras na duas tabelas, como o campo “codigo_cliente” na tabela “notas_fiscais” e o campo “codigo_produto” na tabela “itens_notas_fiscais”. Esses campos demonstram a possibilidade do relacionamento dessas tabelas com outra tabelas do mesmo banco de dados.
31
LINKSIMPORTANTES Quer saber mais sobre o assunto? Então: Sites Leia o artigo “Modelagem de dados – Teoria e prática”, de M. Araújo. Disponível em: . Acesso em: 1 fev. 2014. O texto mostra teorias e práticas da modelagem envolvendo diagramas entidaderelacionamento e banco de dados relacional. Leia o artigo “Aplicações práticas de inteligência artificial para modelagem conceitual de banco de dados”, de Geoflávia Guilarducci de Alvarenga. Disponível em: . Acesso em: 1 fev. 2014. Artigo que mostra a importância dos modelos conceituais em um projeto de banco de dados, considerando a implantação de um sistema baseado em inteligência artificial. Veja a tese Modelos conceituais de dados como parte do processo da catalogação: perspectiva de uso dos FRBR no desenvolvimento de catálogos bibliográficos digitais, de Elvis Fusco. Disponível em: . Acesso em: 1 fev. 2014. Em sua tese, o autor explora o uso do modelo entidade-relacionamento para gerar o modelo conceitual para catalogação baseado em FRBR – Functional Requirements for Bibliographic Records (Requisitos Funcionais para Registros Bibliográficos).
32
LINKSIMPORTANTES Consulte também as seguintes bibliografias: “Mini curso – Introdução à modelagem conceitual de banco de dados”. Disponível em: . Acesso em: 1 fev. 2014.
AGORAÉASUAVEZ Instruções: Chegou a hora de você exercitar seu aprendizado por meio das resoluções das questões deste Caderno de Atividades. Essas atividades auxiliarão você no preparo para a avaliação desta disciplina. Leia cuidadosamente os enunciados e atente-se para o que está sendo pedido e para o modo de resolução de cada questão. Lembre-se: você pode consultar o Livro-Texto e fazer outras pesquisas relacionadas ao tema.
Questão 1: Com base em seu conhecimento prévio sobre “escola”, identifique quatro ou mais entidades dentro desse contexto e liste os relacionamentos entre as entidades identificadas.
Questão 2: Indique a alternativa correta. Entidade é:
a) Representação gráfica de uma tabela de dados. b) Representação simplificada de algo do mundo real. c) Representação simplificada de um modelo de dados d) Representação da instância de um objeto
33
AGORAÉASUAVEZ Questão 3:
( ) Telefone.
Marque “S” para atributo simples e “C” para atributo composto, quanto à capacidade de o atributo ser divisível:
( ) Nome completo.
( ) Telefone.
( ) Endereço.
( ) Nome completo.
( ) Valor bruto de venda.
( ) Quantidade em estoque. ( ) Cor.
( ) Quantidade em estoque. ( ) Cor.
Questão 6:
( ) Valor bruto de venda.
O que define se um atributo que pode ser divisível em outros atributos deve ser listado como um atributo simples ou composto?
Questão 4:
Questão 7:
No que diz respeito à capacidade de o atributo conter mais de um valor, marque “U” para atributo de valor único ou “M” para atributo multivalorado:
O que são relacionamentos recursivos? Exemplifique.
( ) Endereço.
( ) Telefone. ( ) Nome completo. ( ) Quantidade em estoque. ( ) Cor. ( ) Endereço. ( ) Valor bruto de venda.
Questão 5: Marque “A” para atributo armazenado ou “D” para atributo derivado:
34
Questão 8: “Os atributos descritivos não pertencem a nenhuma entidade”. A afirmação está correta? Explique.
Questão 9: Complemente a figura 2.5, relacionando as tabelas “notas_fiscais” e “itens_notas_fiscais” com as tabelas “produtos” e “clientes”.
Questão 10: Qual a diferença entre chave primária e chave estrangeira?
FINALIZANDO Neste caderno você pode acompanhar os três componentes que compõem um modelo entidade-relacionamento: entidades, relacionamentos e atributos. Esses conceitos são importantes para as próximas fases, que terão como objetivo definir através de um diagrama (o diagrama entidade-relacionamento) a especificação de um projeto de banco de dados. Caro aluno, agora que o conteúdo dessa aula foi concluído, não se esqueça de acessar sua ATPS e verificar a etapa que deverá ser realizada. Bons estudos!
REFERÊNCIAS CONCEITOS gerais de banco de dados. Disponível em: . Acesso em: 1 fev. 2014. PRESTES, F. Banco de dados. Apostila, ETEC, s.d. Disponível em: . Acesso em: 1 fev. 2014. SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de Banco de Dados. São Paulo: Elsevier, 2012. TAKAI, O. K.; ITALIANO, I. C.; FERREIRA, J. E. Introdução a banco de dados. Apostila, DCC-IME-USP, 2005. Disponível em: . Acesso em: 1 fev. 2014.
35
GLOSSÁRIO Pré-requisitos: o que é necessário previamente e indispensável para a realização de algo. Projetista: responsável por desenvolver o projeto do banco de dados a ser implementado. Regras de negócios: regras que definem o funcionamento de um setor. Tangível: concreto, físico, tocável.
GABARITO Questão 1 Resposta: • Entidades: • • • •
Aluno. Professor. Sala. Matéria.
• Relacionamentos: • • • •
Professor atende alunos. Alunos estão alocados em uma sala. Alunos atendem a matérias. Professor está alocado por matérias.
Observação: as respostas podem variar. 36
GABARITO Questão 2 Resposta: Alternativa B. Questão 3 Resposta: Sequência correta de indicações: C, C, S, S, C, S. Questão 4 Resposta: Sequência correta de indicações: M, U, U, M, M, U. Questão 5 Resposta: Sequência correta de indicações: A, A, D, A, A, D. Questão 6 Resposta: O que define isso é a forma como ele será utilizado e a importância que terá para o sistema a divisão dos dados de um atributo em vários atributos menores. Questão 7 Resposta: São relacionamentos em que uma entidade se relaciona com ela mesma. Por exemplo, um produto cuja composição é feita de outros produtos. Questão 8 Resposta: Sim. Um atributo descritivo pertence a um relacionamento e só existe graças à associação entre as entidades.
37
GABARITO Questão 9 Resposta: clientes
produtos
• codigo_cliente(PK)
• codigo_produto(PK)
• Nome_cliente
• descrição
• Endereço
• Peso
• CNPJ
• cor
notas_fiscais
Itens_notas_fiscais
• numero_nota_fiscal(PK)
• numero_item_nota_fiscal(PK)
• codigo_cliente(FK)
• numero_nota_fiscal(FK)
• data_emissao
• codigo_produto(FK)
• data_entrega
• quantidade
• valor_liquido
• valor_unitario
• valor_impostos
• valor_total
• valor_frete • valor_bruto Questão 10 Resposta: A chave primária é um campo ou conjunto de campos que definem a exclusividade de um registro dentro de uma tabela. A chave estrangeira é um campo responsável por armazenar a replicação da chave primária de outra tabela, para que seja possível identificar o relacionamento entre duas ou mais tabelas.
38
Tema 03
seções
Modelagem E-R: Conceitos e Fundamentos
s e õ ç e S
Tema 03
Modelagem E-R: Conceitos e Fundamentos
Introdução ao Estudo da Disciplina Caro(a) aluno(a). Este Caderno de Atividades foi elaborado com base no livro Sistema de Banco de Dados, dos autores Abraham Silberschatz, Henry Korth e S. Sudarshan, Editora Elsevier, 2012. Livro-Texto 670.
Roteiro de Estudo: Sistemas de Banco de Dados
Douglas Fugita de Oliveira Cezar
CONTEÚDOSEHABILIDADES Conteúdo Nessa aula você estudará: • Diagrama que representa o modelo entidade-relacionamento. • Restrições de um mapeamento. • Importância da cardinalidade para o modelo entidade-relacionamento.
43
CONTEÚDOSEHABILIDADES Habilidades Ao final, você deverá ser capaz de responder as seguintes questões: • Como representar um modelo entidade-relacionamento em diagrama? • Quais os símbolos utilizados para atributos, relacionamentos e entidades? • Como definir o grau de associação entre unidades através de cardinalidade? • Qual a importância da indicação da restrição de participação?
LEITURAOBRIGATÓRIA MER – Diagrama e Restrições Para que seja possível demonstrar as definições realizadas através do modelo entidade-relacionamento, foi padronizada uma simbologia, conhecida como diagrama entidade-relacionamento (DER). Esse diagrama representa de forma simples e eficiente todos os componentes do modelo entidade-relacionamento vistos até agora. As entidades são definidas no DER por um retângulo simples, que em seu interior está o nome da entidade, geralmente representado por um substantivo, como mostrado na figura 3.1. Figura 3.1 – Entidade fornecedor
Fornecedor
Fonte: Elaboração do autor.
44
LEITURAOBRIGATÓRIA Os relacionamentos são definidos por um losango, no interior do qual encontra-se uma definição breve sobre o tipo de relacionamento existente entre as entidades associadas. Um exemplo é mostrado na figura 3.2. A ligação entre os componentes é feita através de uma linha simples. Figura 3. 2 - Relacionamento entre entidades
Fornecedor
fornece
Produto
Fonte: Elaboração do autor.
Os atributos são representados em um retângulo localizado logo abaixo do nome da entidade, conforme visto na figura 3.3. Figura 3. 3 – Atributos da entidade “fornecedor”
Fornecedor código razão social Fonte: Elaboração do autor.
Repare que um dos atributos está sublinhado. Os atributos-chave possuem essa diferenciação, como representado na figura 3.3 pelo atributo “código”. Os demais atributos não possuem nenhuma alteração quanto à forma de escrita. Nos diagramas entidade-relacionamento, somente devem ser apresentados atributos que têm relevância ao diagrama. Essa recomendação é feita em razão do potencial de poluição ao DER nos casos em que todos os atributos sejam representados em uma entidade. A representação de um mundo real seria dificultada se somente fossem utilizados entidades, atributos e relacionamentos para sua descrição. Um projetista que usa o modelo entidaderelacionamento deve-se valer de restrições para que possa representar com o maior número possível de detalhes o modelo descritivo. 45
LEITURAOBRIGATÓRIA A primeira restrição é a cardinalidade de mapeamento, que define, em um conjunto de relacionamento, qual o número de associações possíveis entre as entidades que compõem o conjunto. A cardinalidade de mapeamento envolvendo duas entidades (A e B) deve ser de um dos seguintes tipos: • Um-para-um (1:1): a entidade A se associa a, no máximo, uma entidade B. Da mesma forma, a entidade B se relaciona a, no máximo, uma entidade A, como pode ser visto na figura 3.4, com o relacionamento entre o conjunto de entidades “pessoa” e o conjunto de entidades “funcionário”. • Um-para-muitos (1:n): a entidade A pode ser associada a várias entidades B. No entanto, a entidade B se associa somente com uma entidade A, como mostra a figura 3.5, representando as notas fiscais de uma empresa e os vários itens presentes em casa nota fiscal. • Muitos-para-um (n:1): a entidade A pode ser associada a no máximo uma entidade B. No entanto, a entidade B pode ser associada a várias entidades A, como representado na figura 3.6 com a indicação de que vários produtos podem ser fornecidos por um mesmo fornecedor. • Muitos-para-muitos (n:n): uma entidade A pode se associar a várias entidades B e, neste caso, a recíproca é verdadeira. A figura 3.7 mostra um caso de relação muitospara-muitos, em que um projeto pode estar associado a várias entidades “funcionário” e um mesmo funcionário pode estar associado a várias entidades “projeto” diferentes. Figura 3. 4 – Relacionamento um-para-um
ID Nome
Cidade
42 José
São Paulo
UF
Data de Nascimento
ID Nome
Salário
SP 23/05/1982
29 José
Analista Sr. R$ 4.200,00
85 Hugo Porto Alegre RS 10/10/1986
35 Hugo
Analista Jr.
27
Luiz
Campo Grande
MS 21/09/1984
16
R$ 2.100,00
Luiz Coordenador R$ 5.300,00
55 Maria Florianópolis SC 15/01/1989 Fonte: Elaboração do autor. 46
Cargo
LEITURAOBRIGATÓRIA Figura 3. 5 – Relacionamento um-para-muitos
ID
Nota Fiscal
Cliente
Data de Emissão
ID
Produto
Quantidade
01
000001
Cliente A
04/08/2012
01
Caneta
100
02
000002
Cliente B
04/08/2012
02
Papel
5
03
Caneta
300
04
Lápis
50
05
Papel
20
Fonte: Elaboração do autor. Figura 3. 6 – Relacionamento muitos-para-um
ID
Produto
ID
Fornecedor
0008
Caneta
000003
Fornecedor A
0022
Papel
000009
Fornecedor B
0025
Lápis Fonte: Elaboração do autor. Figura 3. 7 – Relacionamento muitos-para-muitos
ID
Projeto
ID
Nome
Cargo
1
Projeto Alfa
29
José
Analista Sr.
2
Projeto Bravo
35
Hugo
Analista Jr.
3
Projeto Charlie
16
Luiz
Coordenador
Fonte: Elaboração do autor.
47
LEITURAOBRIGATÓRIA A restrição de cardinalidade é representada no diagrama entidade-relacionamento através da indicação do tipo na linha que liga as entidades ao relacionamento. Como exemplo, pode ser observada na figura 3.8 a forma de diagrama do relacionamento representado na figura 3.5. Figura 3. 8 – DER com cardinalidade de mapeamento
1
Nota fiscal
n
Possui
Itens da nota fiscal
Fonte: Elaboração do autor.
A notação exibida será utilizada para todos os tipos de cardinalidade de mapeamento, seja ela um-para-um, um-para-muitos, muitos-para-um ou muitos-para-muitos. Em caso de um relacionamento recursivo, a cardinalidade de mapeamento é representada pela figura 3.9. Figura 3. 9 – DER com relacionamento recursivo
Funcionário
1
gerencia
n Fonte: Elaboração do autor.
A cardinalidade também pode ser representada de uma maneira mais complexa, que leva em consideração o número mínimo e máximo de vezes que uma entidade pode participar de um relacionamento. A representação dessa forma complexa de exibição da cardinalidade é mostrada na figura 3.10.
48
LEITURAOBRIGATÓRIA Figura 3. 10 – DER com cardinalidade complexa
Nota fiscal
1..*
Possui
1..1
Itens da nota fiscal
Fonte: Elaboração do autor.
A notação é definida por min..max, sendo min o menor valor possível e max o maior valor do relacionamento. A linha entre o relacionamento e a entidade “itens da nota fiscal” possui a restrição de cardinalidade 1..1, o que significa que cada elemento da entidade “itens da nota fiscal” deve estar relacionado obrigatoriamente (pelo menos um e no máximo um) com um elemento da entidade “nota fiscal”. Já a linha que liga o relacionamento à entidade “nota fiscal” mostra que os elementos dessa entidade devem estar relacionados com no mínimo um elemento da entidade “itens da nota fiscal” e sem limite máximo de associações. Caso seja necessário, a notação aceita casos em que nenhuma associação é obrigatória, sendo o min da notação indicado como 0. Para complementar a restrição de cardinalidade, existe a restrição de participação, a qual o projetista pode utilizar para indicar uma dependência de existência. Ou seja, todas as entidades que compõem o conjunto de entidades A devem necessariamente estar associadas a entidades do conjunto de entidades B. Essa restrição é classificada em dois tipos: participação parcial e participação total. A participação parcial é determinada quando, em um relacionamento, um elemento de uma entidade não precisa estar relacionado a nenhum item de outra entidade para existir. Nem todos os funcionários gerenciam um setor, logo um relacionamento que defina este fato será de participação parcial, o que é representado pela figura 3.11. Figura 3. 11 – Participação parcial
Funcionário
1
gerencia
1
Setor
Fonte: Elaboração do autor. 49
LEITURAOBRIGATÓRIA Já a participação total define que todos os elementos de uma entidade precisam estar associados a pelo menos um elemento da entidade a qual a primeira está relacionada. Todos os funcionários de uma empresa devem estar associados a um setor, o que pode ser visto na figura 3.12. Figura 3. 12 – Participação total
Funcionário
n
pertence
1
Setor
Fonte: Elaboração do autor.
Para registrar a participação total no DER, a linha que liga a entidade ao relacionamento deve ser dupla, conforme se identifica na figura 3.12.
LINKSIMPORTANTES Quer saber mais sobre o assunto? Então: Sites Veja a página do software brModelo. Disponível em: . Acesso em: 1 fev. 2014. Software livre utilizado para o ensino de criação de diagrama entidade-relacionamento.
50
LINKSIMPORTANTES Leia o artigo “Comparação entre a modelagem orientada a objeto e a modelagem estruturada relacional”, de Marcos Leandro Figueiredo e Hélio Rubens Soares. Disponível em: . Acesso em: 1 fev. 2014. Nesse artigo, os autores comparam o diagrama entidade-relacionamento (DER) com o diagrama de classe. Veja o trabalho de conclusão de curso intitulado “Sistema de informações para controle da frota de veículos”, de Ricardo Sorroche. Disponível em: . Acesso em: 1 fev. 2014. No texto é demonstrada a documentação de um sistema de controle de frotas que possui, entre outros diagramas, um DER bem detalhado, com seu dicionário de dados.
Vídeos “Entidade Relacional usando brModelo – Parte I”. Disponível em: . Acesso em: 1 fev. 2014. O vídeo ensina como gerar um DER na ferramenta livre brModelo.
51
AGORAÉASUAVEZ Instruções: Chegou a hora de você exercitar seu aprendizado por meio das resoluções das questões deste Caderno de Atividades. Essas atividades auxiliarão você no preparo para a avaliação desta disciplina. Leia cuidadosamente os enunciados e atente-se para o que está sendo pedido e para o modo de resolução de cada questão. Lembre-se: você pode consultar o Livro-Texto e fazer outras pesquisas relacionadas ao tema.
Questão 1:
a) Um-para-um.
Descreva uma situação de seu dia a dia como estudante que represente um relacionamento um-para-um. A seguir, descreva outra situação que represente um relacionamento um-para-muitos.
b) Um-para-muitos.
Questão 2: A entidade “loja” pode ser associada a várias entidades “carros”. No entanto, um item da entidade “carro” só pode estar associado a uma “loja”. Essa afirmação representa um relacionamento:
52
c) Muitos-para-um. d) Muitos-para-muitos.
Questão 3: A entidade “loja” pode ser associada a várias entidades “carros”. No entanto, um item da entidade “carro” deve estar associado a uma “loja”. No ponto de vista da entidade “loja”, ela possui uma restrição de:
AGORAÉASUAVEZ a) Participação parcial. b) Participação total.
a) Nota fiscal
1..1
pertence
1..1
1..1
pertence
0..1
0..1
pertence
1..*
1..1
pertence
0..*
cliente
c) Participação integral. d) Participação completa.
Questão 4: “A entidade ‘nota fiscal’ está relacionada a somente um cliente. No entanto, um cliente pode estar relacionado a várias notas fiscais”. Essa afirmação pode ser representa por qual notação de cardinalidade de mapeamento?
b) Nota fiscal
cliente
c) Nota fiscal
cliente
d) Nota fiscal
cliente
a) ( ) 1:1 b) ( ) 1:n
Questão 6:
c) ( ) n:1
Represente a entidade “aluno” e seus atributos mais comuns através da simbologia estudada neste caderno. Deve-se indicar ao menos uma chave primária.
d) ( ) n:n
Questão 5: “A entidade ‘nota fiscal’ está relacionada a somente um cliente. No entanto, um cliente pode estar relacionado a várias notas fiscais”. Essa afirmação pode ser representada por qual notação complexa de cardinalidade de mapeamento?
Questão 7: Utilizando a figura 3.5 e a figura 3.6 como base, construa um único DER que represente os dois relacionamentos.
Questão 8: Qual a importância das restrições para o modelo entidade-relacionamento? 53
AGORAÉASUAVEZ Questão 9: Qual o efeito da restrição de participação total em um relacionamento entre duas entidades?
Questão 10: Em uma rede de supermercados, cada supermercado possui vários setores, nos quais estão dispostos os produtos para venda. Cada um desses setores é gerenciado por um funcionário que, por sua vez, possui ao menos dois funcionários que respondem a ele. Geralmente, existe mais de um fornecedor para o mesmo tipo de produto. Represente em um único DER a situação detalhada no parágrafo anterior.
FINALIZANDO Neste tema você pôde acompanhar uma parte mais voltada à prática do modelo entidade-relacionamento: a criação dos diagramas entidade-relacionamento. Esse diagrama é responsável por mostrar aos desenvolvedores uma visão mais simples e direta do modelo entidade-relacionamento criado pelo projetista. Também pôde acompanhar as principais restrições de um modelo entidade-relacionamento e seu importante papel de delimitar o relacionamento criado entre entidades. Caro aluno, agora que o conteúdo dessa aula foi concluído, não se esqueça de acessar sua ATPS e verificar a etapa que deverá ser realizada. Bons estudos! 54
REFERÊNCIAS CONCEITOS gerais de banco de dados. Disponível em: . Acesso em: 1 fev. 2014. SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de Banco de Dados. São Paulo: Elsevier, 2012. TAKAI, O. K.; ITALIANO, I. C.; FERREIRA, J. E. Introdução a banco de dados. Apostila, DCC-IME-USP, 2005. Disponível em: . Acesso em: 1 fev. 2014.
GLOSSÁRIO Diagrama: representação através de esboços, desenhos, linhas. Potencial: possibilidade de que algo aconteça. Relevância: importância. Restrição: imposição de limites. Simbologia: conjunto de símbolos.
55
GABARITO Questão 1 Resposta: A primeira situação pode ser representada por relacionamentos como “aluno pertence a um curso”, “aluno pertence a uma turma”, “coordenador coordena um curso” etc. A segunda situação pode ser representada por “orientador orienta vários alunos”, “um curso possui vários professores”, “uma classe comporta vários alunos” etc. As respostas podem variar nesse sentido. Questão 2 Resposta: Alternativa B. Questão 3 Resposta: Alternativa A. Questão 4 Resposta: Alternativa B. Questão 5 Resposta: Alternativa D. Questão 6 Resposta: Observação: as respostas podem variar. Aluno RA nome curso ano de ingresso formado? ano de colação de grau CNPJ endereço telefone 56
GABARITO Questão 7 Resposta: Nota Fiscal
1
n
possui
Itens de nota fiscal
1
contém
ID Produto Quantidade
ID Nota Fiscal Cliente Data de Emissão
1 Fornecedor ID Fornecedor
1
fornece
n
Produtos ID Produto
Questão 8 Resposta: As restrições são utilizadas para aumentar o número de detalhes em um modelo entidade-relacionamento. Esses detalhes podem deixar o modelo conceitual mais próximo do modelo descritivo. Questão 9 Resposta: A restrição de participação total impõe que a entidade esteja relacionada obrigatoriamente a pelo menos uma outra entidade do relacionamento.
57
GABARITO Questão 10 Resposta: n
Funcionário
1
coordena
1 gerencia 1 Supermercado
1
possui
n
Setores
1
contém
Fornecedor n fornece
58
1 n
Tipo de produto
1
contém
n
Produtos
Tema 04
seções
Modelagem E-R: Técnicas e Ferramentas
s e õ ç e S
Tema 04
Modelagem E-R: Técnicas e Ferramentas
Introdução ao Estudo da Disciplina Caro(a) aluno(a). Este Caderno de Atividades foi elaborado com base no livro Sistema de Banco de Dados, dos autores Abraham Silberschatz, Henry Korth e S. Sudarshan, Editora Elsevier, 2012. Livro-Texto 670.
Roteiro de Estudo: Sistemas de Banco de Dados
Douglas Fugita de Oliveira Cezar
CONTEÚDOSEHABILIDADES Conteúdo Nessa aula você estudará: • Recursos estendidos do modelo de entidade-relacionamento. • Generalização e especialização. • Agregação.
63
CONTEÚDOSEHABILIDADES Habilidades Ao final, você deverá ser capaz de responder as seguintes questões: • Qual a importância dos recursos estendidos para o MER? • Qual a relação entre generalização e especialização? • Quais os ganhos com o uso da agregação? • Como funcionam as heranças?
LEITURAOBRIGATÓRIA Modelo Entidade-Relacionamento Estendido Utilizando os componentes do modelo entidade-relacionamento vistos até o momento, você é capaz de trazer para o modelo conceitual uma infinidade de situações do mundo real. No entanto, em certos momentos, são necessárias extensões do modelo entidaderelacionamento como visto até o momento. Os recursos estendidos do MER foram baseados no modelo de orientação a objeto. Por isso, termos como especialização, generalização e herança serão vistos ao longo deste material. A especialização foi criada para que fosse possível representar situações nas quais um conjunto de itens de uma entidade não compartilhe alguns atributos com outros itens da mesma entidade. Em uma indústria alimentícia, onde várias matérias-primas são misturadas para que seja formado um novo produto acabado, a entidade “produtos” possui atributos comuns entre todos os itens dessa entidade, como “descrição”, “validade”, “lote”, “quantidade em estoque” e “custo do produto”. No entanto, essa entidade pode ser dividida em subgrupos que possuem atributos específicos. Os “produtos” que são “produtos acabados” podem possuir os atributos “preço de venda”, “margem de lucro”, “percentual de comissão para os vendedores”. 64
LEITURAOBRIGATÓRIA Já os “produtos” que são “materiais de laboratório” podem possuir atributos como “material controlado?”, “órgão de controle”, “inflamável?”, “corrosivo?”. Por sua vez, os itens da entidade “Produtos” que são “matérias-primas” podem possuir atributos como “fornecedor preferencial”, “último preço de compra”, “preço médio de compra”, “ponto de pedido” e “nível mínimo para estoque”. Essa especialização detalhada até aqui pode ser representada pela figura 4.1. Figura 4. 1 – Especialização da entidade “produtos”
Produtos ID descrição validade lote qtde em estoque custo do produto
Produto acabado
Material Laboratório
Matéria-prima
preço de venda margem de lucro comissão de venda
produto controlado? órgão de controle inflamável? corrosivo?
último preço compra preço médio compra nível mínimo
Fonte: Elaboração do autor.
As entidades derivadas do recurso da especialização também podem sofrer especializações. Os “produtos acabados” destinados para outras indústrias são vendidos a granel, necessitando somente de uma “unidade de venda”, bem como “quantidade por embalagem”, por exemplo 25 kg por saco. Esses atributos são compartilhados com os produtos que são destinados ao consumidor final. No entanto, os que são destinados ao consumidor final possuem atributos específicos como “unidade de venda ao consumidor final”, “quantidade 65
LEITURAOBRIGATÓRIA por embalagem para consumidor final” e “mercado alvo”; por exemplo: são vendidas caixas com 10kg de produto, sendo que em cada caixa há embalagens de 400g de produtos para atender a classe B/C. Esse cenário pode ser representado pela expansão da figura 4.1, mostrado na figura 4.2. Figura 4. 2 – Especialização da entidade “Produto Acabado”
Produtos ID descrição validade lote qtde em estoque custo do produto
Produto acabado
Material Laboratório
Matéria-prima
preço de venda margem de lucro comissão de venda unidade de venda quantidade/embalagem
produto controlado? órgão de controle inflamável? corrosivo?
último preço compra preço médio compra nível mínimo
Produto acabado Consumidor final unidade venda cons. final qtdade/embalagem cons. final Fonte: Elaboração do autor. 66
LEITURAOBRIGATÓRIA A linha que une as entidades com suas especializações é chamada de “É-UM”. Olhando para a figura 4.2, pode se dizer que “produto acabado” “é um” “produto”. Agora que você já conhece a especialização, entender o conceito de generalização se torna fácil. Em vez de verificar as diferenças que um conjunto de itens de uma entidade possui em relação aos outros itens, como feito na especialização, o objetivo na generalização é encontrar as semelhanças entre itens de entidades diferentes. Olhando para a figura 4.2, pode se observar que as entidades “produto acabado”, “material de laboratório” e “matériaprima” possuem atributos em comum, que são: descrição, validade, lote, quantidade em estoque e custo do produto. Pode-se então dizer que a entidade “produtos” é a generalização das entidades citadas anteriormente. Um conceito importante sobre as especializações e generalizações é a herança de atributos. Uma entidade inferior herda os atributos das entidades superiores a ela. A entidade “produto acabado para consumidor final” da figura 4.2 possui, além de seus próprios atributos, os atributos herdados das entidades “produto acabado” e “produtos”. As entidades também herdam o relacionamento pelo qual as entidades superiores a ela se associam. Por exemplo, as entidades “produto acabado” e “matéria-prima” estão em um relacionamento, visto que os produtos acabados são compostos por matérias-primas. Com isso, a entidade “produto acabado para consumidor final” herda este relacionamento, como visto na figura 4.3.
67
LEITURAOBRIGATÓRIA Figura 4. 3 – Herança de relacionamento
Produtos ID descrição validade lote qtde em estoque custo do produto
Produto acabado preço de venda margem de lucro comissão de venda unidade de venda quantidade/embalagem
Matéria-prima É composto de
1..n
0..n
último preço compra preço médio compra nível mínimo
Produto acabado Consumidor final unidade venda cons. final qtdade/embalagem cons. final Fonte: Elaboração do autor.
Outro recurso do modelo entidade-relacionamento estendido está associado com a impossibilidade de relacionamento entre relacionamentos, imposta pelo modelo entidaderelacionamento. A figura 4.4 mostra como seria a construção de um DER com os conceitos básicos de MER.
68
LEITURAOBRIGATÓRIA Figura 4. 4 – Relacionamento entre relacionamento – Conceitos básicos de MER
Funcionário
alocado
Departamento
Gerenciado por
Funcionário
Fonte: Elaboração do autor.
Para facilitar essa representação, o recurso estendido “agregação” é utilizado. Esse recurso tem a função de tratar um relacionamento como uma entidade de nível superior, como mostrado na figura 4.5. A agregação é representada por um retângulo que delimita um relacionamento, transformando-o em uma nova entidade.
69
LEITURAOBRIGATÓRIA Figura 4. 5 – Relacionamento entre relacionamento utilizando-se agregação
Funcionário
alocado
Departamento
Gerenciado por
Funcionário
Fonte: Elaboração do autor.
A agregação tem a capacidade de fazer com que todos os atributos de um relacionamento possam estar presentes em uma associação com outros relacionamentos. O relacionamento “alocado” possui o atributo “data de alocação” e na figura 4.4 ele não seria estaria presente na associação com o relacionamento “gerenciado por”. Já na figura 4.5 esse atributo e todos os outros envolvidos no relacionamento “alocado” estariam disponíveis.
70
LINKSIMPORTANTES Quer saber mais sobre o assunto? Então: Sites Veja os slides de aula sobre Modelagem de Dados, de Rafael Dias Ribeiro. Disponível em: . Acesso em: 1 fev. 2014. Material que contém muita informação sobre o modelo entidade-relacionamento estendido, bem como diversos exemplos sobre seus componentes. Leia a monografia “ERE-CASE: Ferramenta CASE de Modelagem Conceitual com EntidadeRelacionamento Estendido para Banco de Dados”, de Renan Pereira Gouveia de Lima. Disponível em: . Acesso em: 1 fev. 2014. O texto mostra a adoção de uma ferramenta de software livre para a modelagem utilizando os conceitos estendidos do modelo entidade-relacionamento.
Vídeos Série de vídeos do site Study Yaar sobre o modelo entidade-relacionamento. Disponível em: . Acesso em: 1 fev. 2014. Nessa série são mostrados conceitos de MER, inclusive com as extensões do MER vistas neste caderno.
71
AGORAÉASUAVEZ Instruções: Chegou a hora de você exercitar seu aprendizado por meio das resoluções das questões deste Caderno de Atividades. Essas atividades auxiliarão você no preparo para a avaliação desta disciplina. Leia cuidadosamente os enunciados e atente-se para o que está sendo pedido e para o modo de resolução de cada questão. Lembre-se: você pode consultar o Livro-Texto e fazer outras pesquisas relacionadas ao tema.
Questão 1:
a) Especialização
Considerando o contexto “cozinha”, indique possíveis entidades com generalizações e especializações. Indique também alguns atributos para as entidades indicadas.
b) Agregação c) Herança d) Todas alternativas anteriores
Questão 2:
Questão 3:
Em um banco, os clientes possuem contas bancárias, que podem ser contas-correntes ou então contas-poupança.
O recurso de agregação transforma um relacionamento em um(a):
Este cenário pode ser mapeado utilizandose os conceitos de:
a) Atributo. b) Generalização. c) Relacionamento. d) Entidade.
72
AGORAÉASUAVEZ Questão 4:
Questão 6:
Marque “V” ou “F” para as afirmações seguintes referentes à herança de atributo.
A partir das entidades seguintes, crie uma entidade através da generalização que as suporte.
( ) As entidades inferiores herdam os atributos somente da entidade imediatamente superior. ( ) As entidades superiores herdam os atributos das entidades inferiores. ( ) As entidades inferiores herdam os atributos de todas as entidades superiores. ( ) Os relacionamentos também são herdados pelas entidades inferiores. ( ) Os relacionamentos de uma entidade superior devem ser representados através de um novo relacionamento com as entidades inferiores.
Questão 5: Marque “V” (verdadeiro) ou “F” (falso) para as afirmações seguintes referentes a generalização / especialização. ( ) Duas entidades que possuam atributos semelhantes podem gerar uma nova entidade através da generalização. ( ) Entidades inferiores não podem sofrer uma nova especialização. ( ) A especialização é utilizada quando entidades possuem atributos semelhantes. ( ) As entidades geradas pela especialização possuem atributos diferentes da entidade superior.
Carro
Caminhão
Fabricante Ano Ano-modelo Renavam Número de passageiros Preço Número de portas Capacidade de combustível Tipo de combustível
Fabricante Ano Renavam Número de eixos Preço Capacidade de carga Tipo de combustível
Questão 7: Com base no diagrama da questão 6, crie uma entidade através da especialização que separe os carros utilitários dos demais carros. Indique ao menos dois atributos.
Questão 8: Com base no diagrama da resposta da questão 7, quais são os atributos da entidade “carros utilitários” de acordo com o conceito de herança de atributos?
73
AGORAÉASUAVEZ Questão 9: Qual melhoria a agregação proporciona ao conceito básico do MER?
Questão 10: Algumas pessoas são atendidas por recepcionistas de uma clínica médica. Após o atendimento, elas são encaminhadas a um profissional, que pode ser um médico, um fisioterapeuta ou uma enfermeira. Com esse cenário, gere um DER utilizando conceitos de especialização, generalização e agregação, bem como atributos para cada entidade.
FINALIZANDO Neste tema você pôde conhecer novos componentes para o modelo entidaderelacionamento, facilitando situações nas quais o conceito básico de MER é limitado. O uso dos recursos do modelo entidade-relacionamento estendido traz uma nova visão e um maior poder de detalhamento para que seja possível traduzir em diagramas e projetos de banco de dados os modelos descritivos do mundo real. Caro aluno, agora que o conteúdo dessa aula foi concluído, não se esqueça de acessar sua ATPS e verificar a etapa que deverá ser realizada. Bons estudos!
74
REFERÊNCIAS CONCEITOS gerais de banco de dados. Disponível em: . Acesso em: 1 fev. 2014. SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de Banco de Dados. São Paulo: Elsevier, 2012. TAKAI, O. K.; ITALIANO, I. C.; FERREIRA, J. E. Introdução a banco de dados. Apostila, DCC-IME-USP, 2005. Disponível em: . Acesso em: 1 fev. 2014.
GLOSSÁRIO Alocado: que está em um local definido. Granel: produto que se encontra em uma grande embalagem, não estando em pacotes ou caixas como as apresentadas para venda. Lote: delimitação de itens produzidos em uma mesma sequência. Ponto de pedido: número que define quando novos produtos deverão ser comprados, para manter o nível do estoque.
75
GABARITO Questão 1 Resposta: Pode-se indicar entidades como “eletrodomésticos” e especializações como refrigeradores, micro-ondas e fogão, ou então a entidade “mantimentos” e suas especializações arroz, feijão, açúcar. Questão 2 Resposta: Alternativa A. Questão 3 Resposta: Alternativa D. Questão 4 Resposta: Sequência correta de indicações: F, F, V, V, F. Questão 5 Resposta: Sequência correta de indicações: V, F, F, V. Questão 6 Resposta:
Veículo Fabricante Ano Renavam Preço Tipo de combustível Carro
Ano-modelo Número de passageiros Número de portas Capacidade de combustível 76
Caminhão Número de eixos Capacidade de carga
GABARITO Questão 7 Resposta:
Veículo Fabricante Ano Renavam Preço Tipo de combustível Carro
Ano-modelo Número de passageiros Número de portas Capacidade de combustível
Caminhão Número de eixos Capacidade de carga
Carro Ano-modelo Número de passageiros Número de portas Capacidade de combustível Observação: as respostas podem variar. Questão 8 Resposta: • Fabricante. • Ano. • Renavam. • Preço. • Tipo de Combustível. • Ano-modelo.
77
GABARITO • Número de passageiros. • Número de portas. • Capacidade de combustível. • Capacidade da caçamba* • Cabine estendida* Observação: os itens marcados com * podem variar, de acordo com a questão 7. Questão 9 Resposta: Através da agregação é possível criar relacionamento entre relacionamentos, inclusive com associação com os atributos descritivos dos relacionamentos. Questão 10 Resposta:
Pessoas
atendidas
Nome CPF
paciente
recepcionista Nome Matrícula
Encaminhada para
Profissional Nome CPF
78
Médico
Enfermeira
Fisioterapeuta
CRM
COREN
CREFITO
Tema 05
seções
Arquitetura de Banco de Dados
s e õ ç e S
Tema 05
Arquitetura de Banco de Dados
Introdução ao Estudo da Disciplina Caro(a) aluno(a). Este Caderno de Atividades foi elaborado com base no livro Sistema de Banco de Dados, dos autores Abraham Silberschatz, Henry Korth e S. Sudarshan, Editora Elsevier, 2012. Livro-Texto 670.
Roteiro de Estudo: Sistemas de Banco de Dados
Douglas Fugita de Oliveira Cezar
CONTEÚDOSEHABILIDADES Conteúdo Nessa aula você estudará: • O histórico da arquitetura, desde os sistemas centralizados até o sistema distribuído. • A importância do sistema cliente-servidor. • Arquiteturas paralelas de bancos de dados.
83
CONTEÚDOSEHABILIDADES Habilidades Ao final, você deverá ser capaz de responder as seguintes questões: • Qual a diferença entre a arquitetura centralizada e a de cliente-servidor? • Quais os tipos de sistema servidor? • Quais as vantagens e desvantagens da arquitetura distribuída? • Qual a diferença entre uma arquitetura paralela nada compartilhada e uma arquitetura distribuída?
LEITURAOBRIGATÓRIA Arquitetura de Banco de Dados Os bancos de dados e seus SGBDs necessitam de uma estrutura física para que o projeto de banco de dados possa sair do papel e ganhar vida no mundo computacional. Para isso, um passo importante é saber qual é a melhor arquitetura para atender às necessidades do seu banco de dados. A arquitetura utilizada inicialmente para a implantação dos bancos de dados foi a arquitetura centralizada, na qual um único computador é o responsável por todos o processamentos para aquele repositório. Essa arquitetura se beneficia da evolução tecnológica, utilizando-se de processadores com vários núcleos, memória com maior capacidade de armazenamento e acesso, discos rígidos e discos de estado sólido cada vez mais rápidos e seguros. Nessa arquitetura se enquadram os sistemas monousuários, nos quais o banco de dados é acessado por somente uma pessoa, ou então sistemas multiusuários, nos quais vários usuários se conectam remotamente ao servidor centralizado. Com a melhoria dos desktops, parte dos sistemas passou a ser executada em cada estação de trabalho e, com isso, não era mais necessária a conexão remota ao servidor. 84
LEITURAOBRIGATÓRIA Essa arquitetura ficou conhecida como cliente-servidor, na qual o servidor de arquitetura centralizada trabalha para atender às requisições dos sistemas cliente. O computador que era utilizado com a arquitetura centralizada agora é utilizado como sistema servidor. A arquitetura cliente-servidor é a mais utilizada nos dias de hoje. Os sistemas servidores podem ser divididos em dois tipos: os servidores de transação e os servidores de dados. Os servidores de transação executam as solicitações de processamento enviadas da estação de trabalho e, após sua execução, devolvem o resultado da operação à estação de solicitante. Já os sistemas servidores de dados têm uma maior interação com seus clientes, visto que o servidor entrega os dados às estações de trabalho para que elas possam executar o processamento do mesmo. Esse sistema depende de que cada uma das estações possa suprir a demanda de processamento necessária para cada tarefa. Um conceito que vem ganhando muito espaço nos dias de hoje é o dos concorrentes aos sistemas centralizados: os sistemas paralelos. Estes permitem que os sistemas possam iniciar suas operações em computadores com configurações mais modestas e, com o passar do tempo, novos computadores possam ser agregados ao sistema, paralelamente aos antigos. Esse recurso ganhou ainda mais utilização com os esforços em busca de melhores técnicas de virtualização de servidores. O uso dos sistemas paralelos se faz necessário pela alta demanda de processamento tanto em quantidade como em rapidez. Fatores importantes para os sistemas paralelos são o ganho de velocidade e o ganho de escala possíveis com o aumento de novas máquinas ao processo. Pode-se entender como ganho de velocidade a diminuição do tempo necessário para se executar uma tarefa quando se aumenta o grau de paralelismo. O ganho de escala se refere à capacidade de executar tarefas maiores no tempo aferido antes do aumento do grau do paralelismo. Embora os dois fatores sejam parecidos, o principal fator de sucesso de um sistema paralelo é o seu ganho de escala, pois, com o aumento do tamanho dos bancos de dados, a massa de dados a ser processada é maior. O paralelismo pode ser dar por várias arquiteturas diferentes. Estas podem ser de memória compartilhada, disco compartilhado, nada compartilhado ou hierárquico.
85
LEITURAOBRIGATÓRIA A arquitetura de memória compartilhada estabelece que todos os processadores e discos acessem uma memória em comum, como pode ser visto na figura 5.1. Figura 5. 1 – Arquitetura de memória compartilhada
Fonte: Elaboração do autor.
Sendo a escrita e o acesso à memória bem mais rápidos que outras formas de acesso, processadores podem trocar mensagens através desses espaços de memória compartilhada. Sua limitação fica por conta da arquitetura das máquinas de memória compartilhada, com barramentos que permitem até 32 ou 64 processadores. O paralelismo pode ser dado em arquitetura de disco compartilhado, com a qual todos os processadores podem acessar todos os discos, bem como no modelo de memória compartilhada. No entanto, cada processador possui sua própria memória, como mostrado na figura 5.2.
86
LEITURAOBRIGATÓRIA Figura 5. 2 – Arquitetura de disco compartilhado
Fonte: Elaboração do autor.
Com esta arquitetura, o problema da limitação gerado pelo barramento de memória é solucionado, bem como a tolerância a falhas, visto que, se um conjunto memória-processador falhar, os outros continuam funcionando. Embora alguns dos problemas sejam solucionados, o acesso aos discos passa a ser custoso, pois não existe mais uma área de memória comum para troca de mensagens. Além disso, mesmo que a possibilidade de expansão seja bem maior que arquitetura de memória compartilhada, o acesso aos dados é mais lento, em razão de todos os dados terem que trafegar por um mesmo barramento. A arquitetura de nada compartilhado indica que vários conjuntos de processadores, memórias e discos se comunicam com outros conjuntos semelhantes, funcionando como um servidor dos dados contidos no próprio conjunto, como mostrado na figura 5.3.
87
LEITURAOBRIGATÓRIA Figura 5. 3 – Arquitetura de nada compartilhado
Fonte: Elaboração do autor.
Como melhoria relativa ao modelo de disco compartilhado, o acesso ao disco local é muito mais rápido, além de ser necessário que trafeguem pelo barramento somente os dados que estão em discos fora do conjunto. A escalabilidade é muito maior graças à capacidade de adicionar mais conjuntos ao mesmo barramento. Seu ponto fraco é o custo da troca de informações entre os nós, visto que, em virtude de nada estar compartilhado, essa troca se dará por meio de softwares em cada um dos conjuntos. A arquitetura hierárquica é um sistema híbrido entre as três arquiteturas de sistemas paralelos vistas anteriormente. Como se fosse uma arquitetura de nada compartilhado, a hierárquica mantém vários conjuntos separados, ligados apenas por um barramento. No entanto, cada um desses conjuntos pode conter em seu interior arquiteturas de memória compartilhada ou de disco compartilhado. Além dos sistemas centralizados e dos sistemas paralelos, uma outra possibilidade de definição de funcionamento físico de um banco de dados são os sistemas distribuídos. Nestes, o banco de dados é armazenado em vários computadores diferentes. Eles se assemelham em arquitetura aos bancos de arquitetura paralela “nada compartilhado”, e a diferença entre eles é que cada nó de um sistema distribuído se encontra geograficamente 88
LEITURAOBRIGATÓRIA separado um do outro. Nesse caso, o custo de acesso a um dado que não se encontra no mesmo conjunto se torna alto. A principal vantagem de um sistema distribuído é a capacidade de usuários poderem acessar os dados que estão em outra localidade. Além disso, caso os dados sejam replicados entre os nós do sistema distribuído, aumenta muito a tolerância a falhas, visto que caso um dos nós deixem de responder, outros podem assumir esta operação, mesmo em casos de problemas de larga escala como falta de energia elétrica em uma localidade ou desastres naturais.
LINKSIMPORTANTES Quer saber mais sobre o assunto? Então: Sites Leia a monografia Um estudo sobre sistemas de banco de dados cliente/servidor, de Enio Kilder Oliveira da Silva. Disponível em: . Acesso em: 1 fev. 2014. O autor realiza um estudo bastante amplo sobre sistema em arquitetura cliente-servidor. Veja uma apresentação do tema Top Esp em Banco de Dados, da professora Marta Mattoso. Disponível em: . Acesso em: 1 fev. 2014. Slides sobre bancos de dados distribuídos, com uma série de informações e exemplos sobre o tema.
89
LINKSIMPORTANTES Leia o capítulo 2 da tese QEEF-G: Execução Paralela Adaptativa de Consultas Iterativas, de Vinícius Fontes Vieira da Silva. Disponível em: . Acesso em: 1 fev. 2014. Esse capítulo mostra conceitos de bancos de dados paralelos.
Vídeos “CloudCast07 - Amazon RDS - O Serviço de Banco de Dados Relacional na Nuvem”. Disponível em: . Acesso em: 1 fev. 2014. Vídeo sobre a estrutura de banco de dados relacional oferecida na nuvem pela Amazon.
AGORAÉASUAVEZ Instruções: Chegou a hora de você exercitar seu aprendizado por meio das resoluções das questões deste Caderno de Atividades. Essas atividades auxiliarão você no preparo para a avaliação desta disciplina. Leia cuidadosamente os enunciados e atente-se para o que está sendo pedido e para o modo de resolução de cada questão. Lembre-se: você pode consultar o Livro-Texto e fazer outras pesquisas relacionadas ao tema.
Questão 1:
Questão 2:
Você provavelmente já teve experiência com algum tipo de banco de dados. Qual arquitetura e quais características esse banco de dados possuía?
Quais das opções seguintes melhor define o conceito de arquitetura cliente-servidor?
90
AGORAÉASUAVEZ a) O servidor processa somente as solicitações enviadas pelos clientes. b) O servidor possui acesso multiusuário por conexão remota com o cliente. c) O servidor monousuário.
possibilita
acesso
d) O servidor envia os dados para que os clientes processem.
Questão 3:
a) Memória compartilhada. b) Disco compartilhado. c) Nada compartilhado. d) Hierarquia.
Questão 5: Marque as afirmações que se referem ao sistema paralelo “nada compartilhado”:
Marque “V” (verdadeiro) ou “F” (falso) para as definições sobre arquitetura paralela:
I. ( ) Seu crescimento é limitado pela quantidade de processadores possíveis no barramento.
( ) Os sistemas paralelos fazem uso das técnicas de virtualização.
II. ( ) O custo de acessar informações em outros discos é elevado.
( ) Seus ganhos são estimados em ganhos de velocidade e ganho de escala.
III. ( ) Semelhante ao sistema distribuído.
( ) O ganho de escala é o mais importante a ser considerado em casos de sistemas paralelos. ( ) O objetivo dos sistemas paralelos é que o, ao longo do tempo, a arquitetura vá se adequando aos recursos necessários ao banco de dados.
IV. ( ) Os nós são separados geograficamente. V. ( ) O aumento do grau de paralelismo é mais simples que os demais.
Questão 6: Qual a diferença entre arquitetura centralizada e a de cliente-servidor?
Questão 4: A arquitetura que prevê vários processadores, cada qual com sua memória, acessando vários discos em barramento é a arquitetura paralela de:
Questão 7: Qual a diferença entre o sistema servidor transacional e o de dados?
91
AGORAÉASUAVEZ Questão 8:
Questão 10:
Qual a diferença entre ganho de escala e ganho de velocidade?
Em que a arquitetura paralela de “nada compartilhado” se assemelha à arquitetura distribuída? O que as diferencia?
Questão 9: A arquitetura paralela hierárquica é considerada híbrida. Justifique essa afirmação.
FINALIZANDO Neste tema você pôde conhecer vários tipos de arquiteturas de bancos de dados. Cada aplicação e cada modelagem possuem requisitos diferentes e, por isso, é importante que você conheça as possíveis soluções para que seu banco de dados tenha um excelente desempenho. Caro aluno, agora que o conteúdo dessa aula foi concluído, não se esqueça de acessar sua ATPS e verificar a etapa que deverá ser realizada. Bons estudos!
92
REFERÊNCIAS CONCEITOS gerais de banco de dados. Disponível em: . Acesso em: 1 fev. 2014. SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de Banco de Dados. São Paulo: Elsevier, 2012. TAKAI, O. K.; ITALIANO, I. C.; FERREIRA, J. E. Introdução a banco de dados. Apostila, DCC-IME-USP, 2005. Disponível em: . Acesso em: 1 fev. 2014.
GLOSSÁRIO Barramento: linhas de comunicação que permitem a interligação de dispositivos de um sistema computacional. Conexão remota: conexão via rede a um computador que emula uma conexão local. Disco de estado sólido: é um tipo de dispositivo, sem partes móveis, para armazenamento não volátil de dados digitais. Híbrido: que mistura dois ou mais elementos em uma mesma solução. Virtualização: é a simulação, via software, de uma plataforma de hardware, dispositivos de armazenamento e recursos de rede.
93
GABARITO Questão 1 Resposta: Esta resposta pode variar. Deve ser explicado quais tipos de bancos de dados os alunos tiveram contato. Geralmente, terá sido um sistema cliente-servidor transacional. Questão 2 Resposta: Alternativas A e D. Questão 3 Resposta: Sequência correta de indicações: V, V, V, V. Questão 4 Resposta: Alternativa B. Questão 5 Resposta: Afirmações corretas: II, III e V. Questão 6 Resposta: Na arquitetura centralizada, toda infraestrutura fica a cargo do servidor, sendo ele monousuário ou multiusuário, através de conexão remota. Já na arquitetura cliente-servidor, toda interface fica no cliente, e o computador, que antes centralizava toda operação, agora faz o papel de servidor. Questão 7 Resposta: No transacional, o cliente envia solicitações ao servidor, que se encarrega de processar e devolver o resultado ao cliente. Já no de dados, o servidor tem o papel de armazenar os dados, pois todo o processamento fica a cargo dos clientes. 94
GABARITO Questão 8 Resposta: O ganho de velocidade implica fazer as mesmas tarefas em um menor período. Já o ganho de escala significa processar um volume maior de informações com o mesmo tempo. Questão 9 Resposta: Ela concentra vários conceitos de arquitetura paralela. Pode ser utilizada uma estrutura de primeiro nível nada compartilhado, em que cada nó da estrutura possui outra arquitetura, como, por exemplo, a de disco compartilhado. Questão 10 Resposta: A semelhança está no fato de que são conjuntos de processadores, memórias e discos separados que se comunicam entre si. A diferença entre elas está no fato de que, na arquitetura distribuída, os conjuntos estão geograficamente separados.
95
Tema 06
seções
Mapeamento do Modelo EntidadeRelacionamento para o Modelo Relacional
s e õ ç e S
Tema 06
Mapeamento do Modelo EntidadeRelacionamento para o Modelo Relacional
Introdução ao Estudo da Disciplina Caro(a) aluno(a). Este Caderno de Atividades foi elaborado com base no livro Sistema de Banco de Dados, dos autores Abraham Silberschatz, Henry Korth e S. Sudarshan, Editora Elsevier, 2012. Livro-Texto 670.
Roteiro de Estudo: Sistemas de Banco de Dados
Douglas Fugita de Oliveira Cezar
CONTEÚDOSEHABILIDADES Conteúdo Nessa aula você estudará: • Normalização. • Como aplicar cada uma das formas normais. • Gerar o modelo relacional a partir do MER.
99
CONTEÚDOSEHABILIDADES Habilidades Ao final, você deverá ser capaz de responder as seguintes questões: • Como funciona cada forma normal? • Qual a melhor forma normal a ser utilizada? • Qual o objetivo da normalização? • Como transformar MER em modelo relacional?
LEITURAOBRIGATÓRIA Mapeamento do Modelo Entidade-Relacionamento para o Modelo Relacional Após completar o modelo conceitual com o auxílio do modelo entidade-relacionamento, chegou o momento de levar essas informações para o modelo relacional. Antes de iniciar o processo, é necessário definir qual nível de normalização será utilizado para o modelo relacional. Normalização é um recurso que evita anomalias na geração de tabelas para o modelo relacional, através da aplicação de regras sucessivas, conhecidas como formas normais (FN). O grau de normalização possui grande importância para definir o comportamento e a forma das tabelas, campos e registros. A 1ª Forma Normal (1FN) define que não devem existir campos multivalorados em uma tabela ou subgrupos de atributos repetidos. Para atender a essas regras, será utilizado o descritivo não normalizado, mostrado na figura 6.1.
100
LEITURAOBRIGATÓRIA Figura 6. 1 – Tabela não normalizada
Nome
Cidade
UF
Nota Fiscal
Data de Emissão
Itens
José
São Paulo
SP
000001
04/05/2013
10 canetas, 10 lápis, 4 cadernos
Hugo
Porto Alegre
RS
000002
09/06/2013
8 canetas, 5 cadernos, 1 lápis, 1 borracha
Luiz
Campo Grande
MS
000005
10/06/2013
50 canetas, 20 lápis
Fonte: Elaboração do autor.
O campo “itens” possui diversos valores, caracterizando um campo multivalorado. Uma forma de solucionar esse problema é mostrada na figura 6.2. Figura 6. 2 – Remoção de campos multivalorados
Nome Cidade UF
Nota Fiscal
Data de Emissão
Item 1
Qtd 1
José
São Paulo
Hugo
Porto RS 000002 09/06/2013 Canetas Alegre
Luiz
Campo MS 000005 10/06/2013 Canetas 50 Grande
SP 000001 04/05/2013 Canetas 10 8
Item 2 lápis
Qtd 2
Item 3
Qtd Qtd Item 4 3 4
10 cadernos
4
cadernos
5
1
lápis
20
lápis
borracha
1
Fonte: Elaboração do autor.
Você pode observar na figura 6.2 que existe um limite físico da tabela para o número de itens possíveis em uma compra. Caso a tabela possua características que mostrem que ela poderá crescer infinitamente em campos para atender à regra de campos multivalorados, esta estratégia não funcionará. Além disso, os campos “Item” e “Qtd” se repetem várias vezes, o que infringe a segunda regra da 1FN: proibição de subgrupos de atributos repetidos.
101
LEITURAOBRIGATÓRIA Sendo assim, para atender aos requisitos da 1FN, é necessário que todos os registros relacionados àquele item estejam separados, como pode ser visto na figura 6.3. Figura 6. 3 – Normalização em nível 1FN
Grupos de repetição Nome Cidade UF
Nota Fiscal
Data de Emissão
Item 1
Qtd 1
José
São Paulo
Hugo
Porto RS 000002 09/06/2013 Canetas Alegre
Luiz
Campo MS 000005 10/06/2013 Canetas 50 Grande
Item 2
SP 000001 04/05/2013 Canetas 10
Item 3
Qtd Qtd Item 4 3 4
10 cadernos
4
cadernos
5
1
lápis
20
borracha
Item
Qtd
SP 000001 04/05/2013
01
Canetas
10
São Paulo
SP 000001 04/05/2013
02
Lápis
10
José
São Paulo
SP 000001 04/05/2013
03
Cadernos
4
Hugo
Porto Alegre
RS 000002 09/06/2013
01
Canetas
8
Hugo
Porto Alegre
RS 000002 09/06/2013
02
Cadernos
5
Hugo
Porto Alegre
RS 000002 09/06/2013
03
Lápis
1
Hugo
Porto Alegre
RS 000002 09/06/2013
04
Borracha
1
Cidade
José
São Paulo
José
UF
Data de Emissão
lápis
Num Item
Nome
Nota Fiscal
8
lápis
Qtd 2
1
Fonte: Elaboração do autor.
Para utilizarmos a 2ª Forma Normal (2FN), a tabela já deve estar na 1FN, e a atenção deve se voltar para os atributos que não são atributos-chave, já que todos eles devem ser dependentes de toda chave primária. Na tabela da figura 6.3, a chave primária é composta de “número da nota fiscal” e “número do item”. No entanto, o campo como “Item” e “Valor de Venda” não são dependentes da chave 102
LEITURAOBRIGATÓRIA primária como um todo. Para solucionar esse caso, devem ser criadas quantas tabelas forem necessárias para atender à regra da dependência dos campos à chave primária, como mostrado na figura 6.4. Figura 6. 4 – Normalização em nível 2FN
Notas fiscais
Clientes
Nota Fiscal
Data de Emissão
ID Cliente
ID
Nome
Cidade
UF
000001
04/05/2013
01
01
José
São Paulo
SP
000002
09/06/2013
02
02
Hugo
Porto Alegre
RS
Itens das Notas Fiscais Nota Fiscal
Num Item
ID Produto
Qtd
Preço de Total de venda desconto
000001
01
000001
10
RS 2,00
R$ 4,30
R$ 15,70
000001
02
000002
10
R$ 1,00
R$ 0,50
R$ 9,50
000001
03
000003
4
R$ 5,00
R$ 2,00
R$ 18,00
000002
01
000001
8
R$ 2,00
R$ 0,00
R$ 16,00
000002
02
000003
5
R$ 5,00
R$ 5,00
R$ 20,00
000002
03
000002
1
R$ 1,00
R$ 0,00
R$ 1,00
000002
04
000004
1
R$ 1,50
R$ 0,00
R$ 1,50
Subtotal
Produtos ID Produto
Item
Valor de Venda
000001
Caneta
R$ 2,00
000002
Lápis
R$ 1,00
000003
Cadernos
R$ 5,00
000004
Borracha
R$ 1,50 Fonte: Elaboração do autor. 103
LEITURAOBRIGATÓRIA As tabelas começam a tomar a forma do modelo relacional, agora com chaves primárias e estrangeiras relacionando as tabelas. Quando se trata de normalização, geralmente utilizase até a 3ª Forma Normal (3FN), que trata da dependência transitiva, isto é, os atributos não chaves devem ser independentes entre si. Na tabela “Clientes” da figura 6.4, os campos “Cidade” e “UF” devem ser separados, gerando uma nova tabela com a identificação da cidade, como demonstrado na figura 6.5. Figura 6. 5 – Normalização em nível 3FN
Clientes
Municípios
ID
Nome
ID Município
01
José
001
001
São Paulo
02
Hugo
002
002
Porto Alegre
Notas fiscais
ID Cidade UF Município
Nota Fiscal
Data de Emissão
ID Clientes
SP
000001
04/05/2013
01
RS
000002
09/06/2013
02
Produtos ID Produto
Item
Valor de Venda
Nota Fiscal
Num Item
ID Produto
Qtd
Preço de Venda
Total de desconto
000001
Caneta
R$ 2,00
000001
01
000001
10
R$ 2,00
R$ 4,30
000002
Lápis
R$ 1,00
000001
02
000002
10
R$ 1,00
R$ 0,50
000003 Cadernos
R$ 5,00
000001
03
000003
4
R$ 5,00
R$ 2,00
000004 Borracha
R$ 1,50
000002
01
000001
8
R$ 2,00
R$ 0,00
000002
02
000003
5
R$ 5,00
R$ 5,00
000002
03
000002
1
R$ 1,00
R$ 0,00
000002
04
000004
1
R$ 1,50
R$ 0,00
Fonte: Elaboração do autor.
A 4ª Forma Normal (4FN) é baseada na remoção de dependências multivaloradas, como é o caso de um provável campo que trate vários telefones. Após definir em qual forma normal será mapeado o projeto de banco de dados, deve-se trazer as informações do modelo entidade-relacionamento e seu diagrama para o modelo relacional, com suas tabelas e campos. 104
LEITURAOBRIGATÓRIA Usualmente, todas as entidades e todos os atributos viram tabelas e campos, respectivamente. As chaves primárias e estrangeiras são definidas com base nos relacionamentos em que as entidades estão envolvidas. Ao verificar um relacionamento um-para-um no MER, a criação do modelo relacional pode ser feita de três formas diferentes. A primeira tabela (T1) pode estar relacionada com a segunda tabela (T2) gerando uma chave- estrangeira em T2. A segunda opção seria o inverso da primeira opção, gerando a chave-estrangeira de T2 em T1. A terceira opção seria a junção das duas anteriores, tendo essas duas tabelas chaves-estrangeiras para indicar seu relacionamento, como mostrado na figura 6.6. Figura 6. 6 – Modelo relacional para relacionamento um-para-um
1
Funcionário
1
É uma
a)
Funcionário Código matrícula Nome Setor Salário
Pessoa ID Pessoa Código matrícula (FK) CPF Nome Endereço Telefone
b)
Funcionário Código matrícula ID Pessoa (FK) Nome Setor Salário
Pessoa ID Pessoa CPF Nome Endereço Telefone
c)
Funcionário
Pessoa ID Pessoa Código matrícula (FK) CPF Nome Endereço Telefone
Código matrícula ID Pessoa (FK) Nome Setor Salário
Pessoa
Fonte: Elaboração do autor. 105
LEITURAOBRIGATÓRIA No caso da figura 6.6, pode ser que exista uma pessoa que não seja um funcionário e, por isso, não faria sentido manter uma chave-estrangeira da tabela “Funcionário” na tabela “Pessoa”. Sendo assim, especificamente nesta situação, a segunda opção deveria ser utilizada. Já para os relacionamentos um-para-muitos existe uma única opção. A tabela 1 (T1) terá somente a sua chave-primária, ao passo que a tabela 2 (T2) terá a chave-estrangeira, conforme demonstra a figura 6.7. Figura 6. 7 – Modelo relacional para relacionamento um-para-muitos
Nota Fiscal
1
n
possui
Nota Fiscal
Itens de nota fiscal
Num NF Cliente Data de Emissão
ID Item NF Num NF (FK) Produto Quantidade Valor Unitário
Itens de nota fiscal
Fonte: Elaboração do autor.
Caso haja atributos descritivos atrelados ao relacionamento, a T2 também será a responsável por manter esse registro. Nos relacionamentos muitos-para-muitos, será necessária a criação de uma tabela acessória, como mostra a figura 6.8
106
LEITURAOBRIGATÓRIA Figura 6.8 – Modelo relacional para relacionamento muitos-para-muitos
Funcionário
n
Atende
n
Projetos
Data_entrada
Funcionário
Projeto
Código matrícula Nome Setor Salário
ID projeto Nome Data de Início
Rel Funcionário x Projeto Código matrícula (FK) ID Projeto (FK) Data de entrada
Pode ser observado que o atributo descritivo do relacionamento é criado na tabela acessória, que servirá de ligação entre as tabelas do relacionamento. A mesma técnica deve ser utilizada caso haja relacionamentos que envolvam mais 2 entidades.
107
LINKSIMPORTANTES Quer saber mais sobre o assunto? Então: Sites Veja as notas de aula da Profa. Dra. Cristina Dutra de Aguiar Ciferri, com o título de “Mapeamento do Modelo Entidade-Relacionamento para o Modelo Relacional”. Disponível em: . Acesso em: 1 fev. 2014. Apresentação que complementa os conceitos vistos neste tema. Leia o resumo do capítulo 19 do livro Database Management Systems, Refinamento de Esquemas e Formas Normais, por Leonardo B. Oliveira e Carlos Senna. Disponível em: . Acesso em: 1 fev. 2014. Texto que mostra de forma detalhada o uso e a importância das formas normais.
Vídeos “Guia 8 leccion 3 Transformación del diagrama entidad relación al modelo relacional”. Disponível em: . Acesso em: 1 fev. 2014. Vídeo que demonstra técnicas de mapeamento com base nos relacionamentos do MER.
108
AGORAÉASUAVEZ Instruções: Chegou a hora de você exercitar seu aprendizado por meio das resoluções das questões deste Caderno de Atividades. Essas atividades auxiliarão você no preparo para a avaliação desta disciplina. Leia cuidadosamente os enunciados e atente-se para o que está sendo pedido e para o modo de resolução de cada questão. Lembre-se: você pode consultar o Livro-Texto e fazer outras pesquisas relacionadas ao tema.
Questão 1:
a) 1 FN.
Talvez você já tenha tido contato com algum banco de dados ou então com alguma estrutura que esteja em modelo relacional, como uma planilha eletrônica. Qual foi o modelo relacional? Estava normalizado? E em qual forma normal esse modelo relacional poderia ser enquadrado?
b) 2 FN.
Questão 2: “Deve estar na forma normal anterior e não deve possuir atributos que não estejam relacionados diretamente com a chave-primária.”
c) 3 FN. d) 4 FN.
Questão 3: Em caso de um relacionamento 1:1 entre as tabelas T1 e T2, como elas devem ser mapeadas para o modelo relacional? a) T1 possui chave estrangeira de T2. b) T2 possui chave estrangeira de T1.
Essa descrição pertence a: 109
AGORAÉASUAVEZ c) Ambas as tabelas possuem chave estrangeira da outra tabela. d) As alternativas “a”, “b” e “c” estão corretas.
O que é normalização e qual é o objetivo de sua utilização?
Questão 7:
Questão 4: Em caso de um relacionamento 1:n entre as tabelas T1 e T2, como elas devem ser mapeadas para o modelo relacional? a) T1 possui chave estrangeira de T2. b) T2 possui chave estrangeira de T1. c) Ambas tabelas possuem estrangeira da outra tabela.
Questão 6:
chave
Descreva as regras de cada forma normal estudada neste tema.
Questão 8: Dado o MER a seguir, crie o modelo relacional obedecendo a 3FN. Nota Fiscal
1
possui
n
Itens de nota fiscal
n
contém
n
d) As alternativas “a”, “b” e “c” estão corretas.
Compra 1
Questão 5:
Cliente
Em caso de um relacionamento n:n entre as tabelas T1 e T2, como elas devem ser mapeadas para o modelo relacional?
Questão 9:
a) T1 possui chave-estrangeira de T2.
Fornecedor
1
fornece
n
1 Produtos
Como devem ser modelados os relacionamentos 1:n? Exemplifique.
b) T2 possui chave-estrangeira de T1. c) Ambas tabelas possuem estrangeira da outra tabela. d) Nenhuma das alternativas.
110
chave-
Questão 10: Um modelo relacional pode estar em 3FN e não estar em 1FN? Justifique sua reposta.
FINALIZANDO Neste tema, você pode entrar em contato com o conceito de normalização, que é uma das premissas para que o projeto de um banco de dados seja realizado corretamente. Sabendo qual a melhor forma normal a ser utilizada, a criação do modelo relacional através do MER se torna fácil, por meio das técnicas que você aprendeu neste tema. Caro aluno, agora que o conteúdo dessa aula foi concluído, não se esqueça de acessar sua ATPS e verificar a etapa que deverá ser realizada. Bons estudos!
REFERÊNCIAS CONCEITOS gerais de banco de dados. Disponível em: . Acesso em: 1 fev. 2014. SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de Banco de Dados. São Paulo: Elsevier, 2012. TAKAI, O. K.; ITALIANO, I. C.; FERREIRA, J. E. Introdução a banco de dados. Apostila, DCC-IME-USP, 2005. Disponível em: . Acesso em: 1 fev. 2014.
111
GLOSSÁRIO Acessória: auxiliar. Anomalia: o que está fora do padrão desejável. Especificamente: de forma específica, determinada. Sucessivo: seguido, consecutivo. Subtotal: totalização parcial.
GABARITO Questão 1 Resposta: O aluno deve citar ao menos um banco de dados ou uma planilha que já tenha trabalhado e informar o grau de normalização, caso houvesse na ocasião. Questão 2 Resposta: Alternativa B. Questão 3 Resposta: Alternativa D.
112
GABARITO Questão 4 Resposta: Alternativa B. Questão 5 Resposta: Alternativa D. Questão 6 Resposta: Normalização é um recurso que evita anomalias na geração de tabelas para o modelo relacional, através da aplicação de regras sucessivas, conhecidas como formas normais (FN). Questão 7 Resposta: 1FN: não deve haver subconjuntos de atributos repetidos ou atributos multivalorados 2FN: deve estar em 1FN, e todos atributos não chave devem depender da chave primária completa. 3FN: deve estar em 2FN, e os atributos não chave que dependem de outros atributos não chave devem ser excluídos. 4FN: deve estar em 4FN, e as dependências multivaloradas devem ser separadas em tabelas diferentes. Questão 8 Resposta: Fornecedor
ID Fornecedor
Produtos ID Produto ID_Fornecedor (FK)
Itens de nota fiscal ID Item ID_Produto (FK) Num_FK
Nota Fiscal Num_FK ID Cliente (FK)
Cliente
ID Cliente
113
GABARITO Questão 9 Resposta: Deve ser criada uma chave estrangeira na segunda tabela do relacionamento, e todos os atributos descritivos ficarão na segunda tabela. O exemplo pode variar, mas deve seguir essas regras. Questão 10 Resposta: Não. Em razão de as regras serem sucessivas, antes de estar em 3FN, o modelo deve estar em 2FN, e uma das regras da 2FN é que o modelo deve estar em 1FN.
114
Tema 07
seções
Introdução à Linguagem SQL
s e õ ç e S
Tema 07
Introdução à Linguagem SQL
Introdução ao Estudo da Disciplina Caro(a) aluno(a). Este Caderno de Atividades foi elaborado com base no livro Sistema de Banco de Dados, dos autores Abraham Silberschatz, Henry Korth e S. Sudarshan, Editora Elsevier, 2012. Livro-Texto 670.
Roteiro de Estudo: Sistemas de Banco de Dados
Douglas Fugita de Oliveira Cezar
CONTEÚDOSEHABILIDADES Conteúdo Nessa aula você estudará: • Linguagem de manipulação de dados. • Linguagem de definição de dados. • Tipos para definição de dados.
119
CONTEÚDOSEHABILIDADES Habilidades Ao final, você deverá ser capaz de responder as seguintes questões: • Quais os comandos responsáveis pela criação e estrutura de dados? • Como recuperar informações em um banco de dados? • Como filtrar os dados que serão atingidos por uma consulta? • Qual a diferença entre DELETE e DROP TABLE?
LEITURAOBRIGATÓRIA Introdução à Linguagem SQL Você deve lembrar que no primeiro tema desta disciplina citamos a Structured Query Language (SQL) como uma linguagem para SGBDs que possibilita manipular os dados e as estruturas do banco de dados, e com a qual as linguagens podem ser divididas em linguagem de manipulação de dados e linguagem de definição de dados. Para o início do banco de dados, é necessário que um conjunto de tabelas seja criado, e isso será feito através da linguagem de definição de dados (Data Definition Language – DDL). A DDL SQL permite que se definam todas as regras necessárias para criação e manutenção da integridade de uma tabela, tais como valores associados aos atributos, chaves primárias, domínio de dados etc. A criação de tabelas é feita através do comando CREATE TABLE, e sua sintaxe básica é a mostrada na figura 7.1.
120
LEITURAOBRIGATÓRIA Figura 7. 1 – Estrutura básica do comando CREATE
Fonte: Elaboração do autor.
Os campos e tipos, bem como o nome da tabela, são obrigatórios para sua criação. Já as restrições, representadas entre os sinais de “maior que” e “menor que”, são opcionais. Para a definição dos atributos, a DDL SQL possui os seguintes tipos básicos: • Char(n): um conjunto de caracteres de tamanho fixo (n). • Varchar(n): um conjunto de caracteres de tamanho variável, sendo (n) o tamanho máximo. • Nvarchar(n): um conjunto de caracteres de tamanho variável, sendo (n) o tamanho máximo. Semelhante ao varchar, mas permite o armazenamento de caracteres Unicode. • Int: um número inteiro. • Float(n): número de ponto flutuante, com precisão de (n) dígitos. • Date: uma data no formato AAAA-MM-DD. As restrições de integridade possíveis ao comando CREATE TABLE estão relacionadas à criação de chaves primárias ou chaves estrangeiras, ou então com a possibilidade ou não de um atributo aceitar um valor nulo. São elas: • primary key (campo_1, campo_2, ..., campo_n): ao especificar a chave primária, o SGBD controlará este campo para que o seu conteúdo seja único e para que não possa ser nulo. 121
LEITURAOBRIGATÓRIA • foreing key (campo_1, campo_2, ..., campo_n) references tabela_2: define que os campos relacionados servem de chave estrangeira para a tabela referenciada no complemento “references”. • Not null: restrição que define que em um atributo específico não é possível armazenar um valor nulo. Com essas definições, é possível criar uma tabela utilizando o comando CREATE TABLE, como visto na figura 7.2. Figura 7. 2 – Estrutura básica do comando CREATE
Fonte: Elaboração do autor. 122
LEITURAOBRIGATÓRIA Após criada, a tabela pode ser destruída ou então alterada. Para destruir a tabela, utiliza-se o comando DROP TABLE, e para sua alteração, ALTER TABLE, como demonstra a figura 7.3. Figura 7. 3 – ALTER TABLE e DROP TABLE
Fonte: Elaboração do autor.
Repare que o comando ALTER possui dois possíveis complementos: add e drop. O “add” é utilizado para inserir um campo à tabela já existente, ao passo que o “drop” apaga um campo. Após a definição da tabela, os dados podem ser manipulados através da Linguagem de Manipulação de Dados (Data Manipulation Language ou DML). Sendo que as tabelas acabaram de ser criadas, a inserção de dados é feita através do comando INSERT. Os dados também podem ser excluído e, para isso, é utilizado o comando DELETE. Os dois comandos são demonstrados na figura 7.4. Figura 7. 4 – INSERT e DELETE
Fonte: Elaboração do autor.
O comando DELETE tem resultado diferente do resultado do comando DROP TABLE. Em razão de o DELETE estar no conjunto DML, somente os dados são apagados da tabela, sem que a estrutura desta seja afetada. Já o DROP TABLE destrói não só os dados, mas também a estrutura da tabela. Para a recuperação de informações de uma base da dados, deve se utilizar o comando SELECT, como demonstrado na figura 7.5. 123
LEITURAOBRIGATÓRIA Figura 7. 5 – Comando SELECT
Fonte: Elaboração do autor.
O “ * ” sugere que todas as colunas sejam recuperadas e retornadas ao solicitante. O comando acima retornaria o seguinte conjunto exibido na figura 7.6: Figura 7. 6 – Retorno de SELECT id_produto CA000001 CA000002 IN000001 IN000002
descricao Caneta Vermelha Caneta Azul Pendrive Mouse
tipo Papelaria Papelaria Informática Informática
Fonte: Elaboração do autor.
Caso sejam necessários somente alguns campos, pode se referenciar, em vez do “ * ”, o nome de cada um dos campos necessários para a pesquisa. Sendo assim, a consulta “SELECT [descrição], [tipo] FROM [produtos]” retornaria os dados demonstrados na figura 7.7. Figura 7. 7 – Retorno de SELECT com campos definidos
Fonte: Elaboração do autor.
Muito utilizada para que seja possível filtrar dados em uma busca é a cláusula WHERE. Por exemplo, poderíamos filtrar somente os produtos do tipo “Papelaria”, como mostra a figura 7.8.
124
LEITURAOBRIGATÓRIA Figura 7. 8 – Utilização do WHERE como filtro de resultados
Fonte: Elaboração do autor.
O SQL permite a utilização de operadores de comparação para a cláusula WHERE, podendo ser utilizados os sinais =, <, <=, >, >= e <>. A cláusula WHERE pode conter várias condições a serem satisfeitas pela consulta. Por isso, podem ser utilizados os operadores lógicos E, OR e NOT. O WHERE também pode ser utilizado para filtrar os dados que serão apagados através do comando DELETE. O comando SELECT pode ser utilizado também para recuperar dados de duas tabelas simultaneamente, o que pode ser visto na figura 7.9. Figura 7. 9 – Utilização do SELECT para obter resultados de mais de uma tabela
Fonte: Elaboração do autor.
Os registros, além de serem inseridos e deletados, também podem ser atualizados. Essa operação é realizada através do comando UPDATE. Esse comando pode ser utilizado em conjunto com a cláusula WHERE, possibilitando filtrar quais dados devem sofrer a alteração indicada pelo comando. Um exemplo deste comando pode ser visto na figura 7.10, que demonstra os registros da figura 7.9 após a atualização.
125
LEITURAOBRIGATÓRIA Figura 7. 10 – Comando UPDATE
Fonte: Elaboração do autor.
LINKSIMPORTANTES Quer saber mais sobre o assunto? Então: Sites Leia o artigo “DDL, Lidando com as diferenças das instruções SQL nos diferentes SGBD’s”, de Diogo Rafael Jacobs e Juliano Varella de Carvalho. Disponível em: . Acesso em: 1 fev. 2014. O texto demonstra a diferença do DDL SQL entre vários fornecedores de software. Leia o artigo “Merging vs Joining: Comparing the data step with SQL, de Malachy J. Foley. Disponível em: . Acesso em: 1 fev. 2014. O texto demonstra métodos de junção de tabelas e compara a junção natural com os comandos JOIN.
126
LINKSIMPORTANTES Leia o artigo “Padrão SQL e sua Evolução”, de Allyn Grey de Almeida Lima. Disponível em: . Acesso em: 1 fev. 2014. Nesse artigo, o autor busca relacionar a evolução da linguagem SQL ao longo do tempo, trazendo elementos de DDL, DML e também de DCL (data control language ou linguagem de controle de dados).
Vídeos “SQL com SQL Server (T-SQL)”. Disponível em: . Acesso em: 1 fev. 2014. Série de videoaulas práticas relacionadas com o padrão T-SQL, baseado no Microsoft SQL Server.
AGORAÉASUAVEZ Instruções: Chegou a hora de você exercitar seu aprendizado por meio das resoluções das questões deste Caderno de Atividades. Essas atividades auxiliarão você no preparo para a avaliação desta disciplina. Leia cuidadosamente os enunciados e atente-se para o que está sendo pedido e para o modo de resolução de cada questão. Lembre-se: você pode consultar o Livro-Texto e fazer outras pesquisas relacionadas ao tema.
127
AGORAÉASUAVEZ Questão 1:
a) DROP TABLE.
Utilizando os comandos da DDL SQL, crie uma estrutura capaz de armazenar dados referentes aos alunos de uma sala de aula.
b) UPDATE. c) ALTER TABLE DROP. d) Nenhuma das alternativas.
Questão 2: Qual das cláusulas WHERE a seguir demonstra um filtro para salários maiores que R$ 5.000,00?
Questão 5: Marque “X” para os comandos que fazem parte da DML SQL:
a) WHERE salario > 5000,00.
I. ( ) SELECT.
b) WHERE NOT(salario <= 5000).
II. ( ) DROP TABLE.
c) WHERE salario < > 5000.
III. ( ) CREATE.
d) As alternativas “a” e “b” estão corretas.
IV. ( ) WHERE.
Questão 3: Qual, dentre os seguintes, é o melhor tipo para registrar um código alfanumérico que deve conter obrigatoriamente 10 dígitos? a) Char(10). b) Varchar(10).
V. ( ) UPDATE. VI. ( ) FROM.
Questão 6: Quais os comandos básicos da linguagem de definição de dados? E os da linguagem de manipulação de dados?
c) Nvarchar(10). d) Todas as alternativas estão corretas.
Questão 4: Qual comando deve ser utilizado para remover todos os dados de uma tabela sem afetar a estrutura? 128
Questão 7: Qual a diferença entre os tipos char, varchar e nvarchar?
AGORAÉASUAVEZ Questão 8:
• Funcionário: nome e setor.
Gere os comandos necessários para criar a estrutura baseada na figura seguinte.
• Projeto: Nome.
Funcionário
n
Atende
n
Projetos
• Rel. Funcionário versus Projeto: Data de entrada.
Data_entrada Funcionário
Projeto
Código matrícula Nome Setor Salário
ID Projeto Nome Data de Início Rel Funcionário x Projeto
Código matrícula (FK) ID Projeto (FK) Data de entrada
Questão 9: Com base na estrutura criada na questão 8, retire o campo “salário” da tabela de funcionários e coloque o campo “data de término” na tabela projeto.
Questão 10: Recupere os dados armazenados nas tabelas, buscando os seguintes campos em uma mesma consulta:
129
FINALIZANDO Neste tema você pôde acompanhar os comandos básicos e introdutórios à linguagem mais utilizada para consultas em bancos de dados, o SQL. Pôde observar também tanto os comandos componentes da linguagem de definição de dados como os comandos da linguagem de manipulação de dados. Com esses conceitos, grande parte dos bancos de dados já pode ser modelada. Caro aluno, agora que o conteúdo dessa aula foi concluído, não se esqueça de acessar sua ATPS e verificar a etapa que deverá ser realizada. Bons estudos!
REFERÊNCIAS CONCEITOS gerais de banco de dados. Disponível em: . Acesso em: 1 fev. 2014. SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de Banco de Dados. São Paulo: Elsevier, 2012. TAKAI, O. K.; ITALIANO, I. C.; FERREIRA, J. E. Introdução a banco de dados. Apostila, DCC-IME-USP, 2005. Disponível em: . Acesso em: 1 fev. 2014.
130
GLOSSÁRIO Integridade: segurança e confiabilidade da informação. Manipulação: inserção, exclusão, alteração ou recuperação dos dados. Operadores lógicos: operadores que servem para comparação entre sentenças, sendo o retorno da operação sempre binário, 0 ou 1, ou então verdadeiro ou falso. Restrição: imposição de regras ou limites. Sintaxe: regra de construção de um comando.
GABARITO Questão 1 Resposta: Deve-se modelar tabelas como Aluno, Provas, Notas, Professores, Cursos. As respostas podem variar. Questão 2 Resposta: Alternativa D. Questão 3 Resposta: Alternativa A. Questão 4 Resposta: Alternativa D. 131
GABARITO Questão 5 Resposta: I e V. Questão 6 Resposta: DDL: CREATE TABLE, ALTER TABLE e DROP TABLE. DML: SELECT, UPDATE, INSERT e UPDATE. Questão 7 Resposta: O tipo char é um conjunto de strings de tamanho fixo, a ser definido na declaração. A varchar é também um conjunto de strings, que tem tamanho variável e tem o tamanho máximo definido na declaração. A nvarchar é semelhante à varchar, armazenando strings em formato Unicode. Questão 8 Resposta:
132
GABARITO Questão 9 Resposta:
Questão 10 Resposta:
133
Tema 08
seções
Segurança e Recuperação de Dados
s e õ ç e S
Tema 08
Segurança e Recuperação de Dados
Introdução ao Estudo da Disciplina Caro(a) aluno(a). Este Caderno de Atividades foi elaborado com base no livro Sistema de Banco de Dados, dos autores Abraham Silberschatz, Henry Korth e S. Sudarshan, Editora Elsevier, 2012. Livro-Texto 670.
Roteiro de Estudo: Sistemas de Banco de Dados
Douglas Fugita de Oliveira Cezar
CONTEÚDOSEHABILIDADES Conteúdo Nessa aula você estudará: • Conceitos de segurança e recuperação de dados. • Conceito de transação • Propriedades ACID.
137
CONTEÚDOSEHABILIDADES Habilidades Ao final, você deverá ser capaz de responder as seguintes questões: • • O que é uma transação? • • O que é atomicidade? • • Quais são os estados possíveis de uma transação? • • O que é commit?
LEITURAOBRIGATÓRIA Segurança e Recuperação de Dados Uma das principais atribuições de um SGBD é denominada controle de transação. Um exemplo clássico para explicar o conceito de transação é uma operação de transferência bancária. Embora pareça uma única operação, uma transferência de fundos pode ser separada em duas partes. A primeira é o saque do dinheiro de uma conta e a segunda é o depósito do valor sacado em outra conta. A esse conjunto inseparável de operações dá-se o nome de transação. Uma transação geralmente é composta por um ou mais comandos de Data Manipulation Language (DML), um comando de Data Definition Language (DDL) ou então um comando de Data Control Language (DCL). As transações possuem certas características que podem ser resumidas pelo acrônimo ACID: atomicidade, consistência, isolamento e durabilidade. A atomicidade tem esse nome graças ao átomo que, antigamente, era tido como indivisível, pois seria a menor parte da matéria. Por essa analogia, você pode entender que uma transação também é indivisível, e todas as operações devem ser efetuadas. Caso contrário, nenhuma das operações deve ser registrada. Em nosso exemplo, uma falha na atomicidade seria o dinheiro ser sacado de uma conta e, por uma falha, não ser depositado na outra conta. 138
LEITURAOBRIGATÓRIA Nos casos em que a transação não consiga ser completada, ocorre uma operação de rollback, que faz com que o banco de dados retorne à forma original, antes do início da transação. Quando a transação é confirmada, ocorre a operação de commit. Essas operações ocorrem ao término de uma transação. Para representar melhor o estado atual de uma transação, podem ser consideradas as seguintes opções: • Ativo: estado inicial da transação, seguindo nessa condição durante a execução das instruções da transação. • Parcialmente confirmado: este estado representa que a última instrução foi executada. • Confirmado: sucede o parcialmente confirmado, determinando a finalização bemsucedida da transação. • Falho: quando, em razão de algum problema na transação, a execução não pode prosseguir. • Abortado: após o estado de falha, é iniciada a operação de rollback. Assim que esta for finalizada, a transação entra neste estado. Um recurso que auxilia a atomicidade é o registro de log. Esse recurso é responsável por gravar informações sobre quais registros foram alterados, sobre qual é o novo valor e também sobre o valor antigo do registro. A geração do registro de log deve ser realizada antes da gravação dos dados no banco de dados. O registro de log então gera uma modificação dos registros no banco de dados, podendo essa atualização ser desfeita a qualquer momento. A transação deve garantir que os dados, após o commit da transação, se mantenham consistentes. Todas as regras que definem a integridade dos dados devem ser atendidas, mesmo que algumas regras não estejam no nível de banco de dados. No exemplo da transferência de fundos, no caso da existência de uma regra que defina que o saldo das contas não deve ficar negativo, uma falha seria, após a ocorrência da transferência, o saldo da conta ficar abaixo de zero. O isolamento é a garantia de que as operações que acontecem no banco de dados não sejam influenciadas por outras operações que ocorrem simultaneamente. Para o caso da 139
LEITURAOBRIGATÓRIA transferência de fundos, imagine um cenário no qual duas operações de transferência são feitas simultaneamente. Uma falha no isolamento poderia fazer com que a operação 1 (op1) realizasse o saque ao mesmo tempo da segunda operação (op2). No entanto, um único local de memória armazena o valor a ser transferido e, sendo assim, o depósito da op1 receberia o valor sacado da op2. Já a conta da op2 não receberia nenhum valor de transferência. É possível que aconteçam falhas referentes ao acesso simultâneo dos dados, como perdas de atualização, leituras de dados com falha ou erro ao executar operações de agregação. As perdas de atualização acontecem quando, após a alteração de um dado, outra instância altera a mesma informação. Isso faz com que a primeira alteração seja perdida. Outra situação é o caso em que uma instância execute uma operação que resultou em um rollback mas na qual, antes de o dado retornar ao valor original, outra instância já está utilizando o valor inconsistente. As operações de agregação também podem estar sujeitas a falha pois, durante uma função de totalização de registros, é possível que um dos registros seja alterado após já ter sido considerado pela função, gerando uma totalização inconsistente. Para solucionar esses problemas, um recurso de controle de concorrência é acionado. O controle de concorrência pode ser baseado em locks ou bloqueios. Este tipo faz com que um objeto do banco de dados seja reservado para a operação em questão. O controle baseado em bloqueios também permite um modo compartilhado, no qual outras instâncias são capazes de obter acesso aos dados, mas somente em modo leitura. Outra forma de ação do controle de concorrência é enviar mensagens de espera para clientes que tentam acessar os dados, pois outra instância já está fazendo uso desse dado. Pouco adiantaria toda essa garantia de atomicidade, consistência e isolamento se, para os casos em que ocorra algum incidente, o banco de dados volte ao seu estado original, “esquecendo-se” da operação executada anteriormente. A garantia de que este problema não vai ocorrer é denominada durabilidade.
140
LINKSIMPORTANTES Quer saber mais sobre o assunto? Então: Sites Leia os capítulos 6 e 8 do livro Princípios de sistemas de gerência de bancos de dados distribuídos, de Marco Antonio Casanova e Arnaldo Vieira Moura. Disponível em: . Acesso em: 1 fev. 2014. Os capítulos citados são relacionados à transação e ao controle de concorrência em bancos de dados distribuídos. Veja o artigo “Estudo Comparativo dos Sistemas Gerenciadores de Bancos de Dados: Oracle, SQL Server e PostgreSQL”, de Rodrigo de Carvalho Santos. Disponível em: . Acesso em: 1 fev. 2014. Artigo que compara SGBDs de mercado, com ênfase nas propriedades de transação. Leia o trabalho final de graduação intitulado “Análise comparativa sobre a consistência de banco de dados nas nuvens”, de Dário Saraiva de Melo Pinheiro. Disponível em: . Acesso em: 1 fev. 2014. Nesse texto, o autor compara soluções de banco de dados armazenadas na nuvem quanto suas características CAP – Consistency, Avaliability e Partition Tolerance.
141
LINKSIMPORTANTES Vídeos “Videoaulas ITnerantes: Banco de Dados: Transações”. Disponível em: . Acesso em: 1 fev. 2014. Primeiro vídeo de uma série que trata de uma forma simples e objetiva os temas transação, concorrência e recuperação.
AGORAÉASUAVEZ Instruções: Chegou a hora de você exercitar seu aprendizado por meio das resoluções das questões deste Caderno de Atividades. Essas atividades auxiliarão você no preparo para a avaliação desta disciplina. Leia cuidadosamente os enunciados e atente-se para o que está sendo pedido e para o modo de resolução de cada questão. Lembre-se: você pode consultar o Livro-Texto e fazer outras pesquisas relacionadas ao tema.
Questão 1:
Questão 2:
O texto citou a operação de transferência de fundos como um exemplo de transação. Quais outras atividades do seu dia a dia podem ser consideradas dentro do conceito de transação?
O que significa o acrônimo ACID?
142
a) Atomicidade, consistência, isolamento e desempenho. b) Atualizável, concorrência, integralidade e destrutível.
AGORAÉASUAVEZ c) Atomicidade, concorrência, inteligência e durabilidade. d) Atomicidade, consistência, isolamento e durabilidade.
Questão 3: Em qual estado estará a transação após ser finalizada a operação de rollback? a) Ativo. b) Parcialmente confirmado. c) Confirmado. d) Falho. e) Abortado.
Questão 4: Marque “V” (verdadeiro) ou “F” (falso) para as afirmações seguintes: ( ) A consistência deve ser garantida somente no SGBD. ( ) Caso a atomicidade seja garantida, todos as outras características do ACID são atendidas. ( ) Durabilidade é a responsável por manter operações distintas separadas uma das outras. ( ) A consistência deve ser garantida somente na aplicação que utilizará o banco de dados.
Questão 5: Marque a alternativa que define um problema de durabilidade. a) Os dados de duas instâncias distintas são armazenados no mesmo espaço de memória. b) Após a confirmação da operação, o banco de dados retornou ao seu estado original. c) Após o cancelamento da operação, o banco de dados retornou ao seu estado original. d) Foram executadas somente 9 instruções das 10 existentes dentro da transação.
Questão 6: O que é transação?
Questão 7: A falha de atomicidade pode gerar uma falha na consistência? Explique.
Questão 8: O que é durabilidade?
Questão 9: O que é controle de concorrência?
Questão 10: O que é uma operação de rollback? 143
FINALIZANDO Neste tema você pôde não só entrar em contato com o tema transação, de grande importância, ao utilizar um SGBD, mas também conhecer suas principais características, de acrônimo ACID. Caro aluno, agora que o conteúdo dessa aula foi concluído, não se esqueça de acessar sua ATPS e verificar a etapa que deverá ser realizada. Bons estudos!
REFERÊNCIAS CONCEITOS gerais de banco de dados. Disponível em: . Acesso em: 1 fev. 2014. SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de Banco de Dados. São Paulo: Elsevier, 2012. TAKAI, O. K.; ITALIANO, I. C.; FERREIRA, J. E. Introdução a banco de dados. Apostila, DCC-IME-USP, 2005. Disponível em: . Acesso em: 1 fev. 2014.
144
GLOSSÁRIO Acrônimo: palavra formada pelas letras ou sílabas iniciais de várias outras palavras. Modo leitura: os dados não podem ser alterados ou excluídos, sendo somente possível a leitura do mesmo. Saque: operação de retirada. Simultaneamente: que ocorre ao mesmo tempo.
GABARITO Questão 1 Resposta: Devem ser consideradas respostas nas quais várias atividades devem ser executadas e que não possam ser separadas. Atividades que exigem pagamento em troca de um serviço ou produto são exemplos de transação. Questão 2 Resposta: Alternativa D. Questão 3 Resposta: Alternativa E.
145
GABARITO Questão 4 Resposta: Sequência correta de indicações: F, F, F, F. Questão 5 Resposta: Alternativa B. Questão 6 Resposta: Transação é um conjunto inseparável de operações. Questão 7 Resposta: Sim. Caso a atomicidade não seja garantida, uma série de instruções que deveriam ser executadas inseparavelmente gerarão valores que podem ser inválidos, gerando assim uma falha também em consistência. Questão 8 Resposta: É a propriedade da transação que garante que, após confirmada a operação, esta seja mantida no banco de dados. Questão 9 Resposta: É um recurso que assegura que o mesmo dado não será editado ao mesmo momento por várias instâncias diferentes. Questão 10 Resposta: A operação de rollback é a reversão das alterações efetuadas em um banco de dados, caso uma transação não seja confirmada.
146