3 Modelagem Relacional de Dados
3.1 Entidades e atributos
Entidades: Algo do mundo real com existência (física ou conceitual) independente Pessoa, Carro, Casa, Trabalho, Curso. São instâncias que não se repetem. Cada entidade se expressa em formas de atributos.
Atributos: Propriedades particulares que descrevem uma entidade, como por exemplo, nome do paciente, idade, endereço. Uma dada entidade terá um valor para cada um de seus atributos.
Os atributos podem ser classificados conforme as seguintes categorias:
- possibilidade de subdivisão
- simples
- composto (e.g., Endereço, Nome)
- número de valores admitidos
- monovalorados (sexo, idade)
- multivalorados (Cor para um carro, Títulos acadêmicos).
- derivação
- primários ou armazenados
- derivados, pois são obtidos a partir dos dados armazenados (e.g., Idade e Data de Nascimento, Números de Empregados do Departamento)
3.2 Relacionamentos
Quando um atributo de uma entidade refere-se a outra entidade.
3.2.1 Grau de um tipo de relacionamento
Número de entidades que participam desse relacionamento p.Exemplo
- TRABALHA_PARA é grau 2
- FORNECE é grau 3
3.2.2 Restrições de relacionamentos
Cardinalidade
Em relações binárias especificam o número máximo de instâncias de relacionamento na qual uma entidade pode participar.
Exemplo: - TRABALHA_PARA 1:N - GERENCIA 1:1
Cardinalidades possíveis:
- 1:1
- 1:N
- N:1
- M:N
Toda vez que tiver uma situação cuja cardinalidade for M:N, elaborar tabela relacional
3.2.3 Restrições de participação
Dependência de existência
Determina se a existência de uma entidade depende da existência de outra entidade relacionada. Também chamada de restrição de cardinalidade mínima
Exemplo: Se a empresa determinar que nem todo funcionário precisa estar vinculado a um departamento temos 0:N
3.3 Requisitos
3.3.1 Funcionais
São atribuições do que o software faz.
Exemplo: Todo valor de exame laboratorial deve ser acompanhado do respectivo parâmetro clínico.
3.3.2 Não funcionais
São requisitos de qualidade, isto é, desempenho, segurança, confibilidade. Impõe restrições acerca do funcionamento do software.
Exemplo: O software deve funcionar em tablet e dispositivos móveis.
- usabilidade
- eficiência (número de transações por unidade de tempo)
- confiabilidade (disponibilidade em 99% do tempo)
- portabilidade
- implementação (linguagem, banco de dados)
- padrões (interoperabilidade, sistema operacional)
- éticos
- legais
3.4 Exercício
Modelar um banco de dados para gerenciar medicamentos em um hospital. Dividam-se em equipes para modelar cada etapa, por exemplo, prescrição, estoque, dispensação e equipe de integração.
Grupos para o exercício:
- prescrição
- administração
- dispensação
- almoxarifado
- compras
- integração
Requisitos do exercício:
- Estabelecer as entidades (nome e descrição, ao menos três)
- Estabelecer os atributos para as entidades (nome e descrição, ao menos dois para cada entidade)
- Estabelecer as relações
- Elaborar um diagrama que estabeleça as relações
- Não consultar material impresso ou eletrônico, apenas colegas e o instrutor.
- A colaboração entre grupos é permitida
- O grupo de “integração” deve circular entre os grupos para evitar redundâncias
3.5 Conceitos do Modelo Relacional
3.5.1 Domínio
É um conjunto de valores atômicos (cada valor no domínio é indivisível no que diz respeito ao modelo relacional)
Ao definir o tipo de dado podemos definir o conjunto de dados que podem ser usados. Exemplo:
CPF: os conjuntos de CPFs válidos Códigos de apac: o conjunto de números de procedimentos existentes no DATASUS
3.5.2 Tupla
Quando uma relação é pensada como uma tabela de valores, cada linha na tabela representa uma coleção de valores de dados relacionados.
3.5.3 Restrições de domínio
Especificam que o valor de cada atributo dentro de cada tupla deve ser um valor atômico do domínio.
Ex:
- idade, três números inteiros U(000 a 999)
- medicamento_pago_ipca, número real com dois algarismos após a vírgula e 6 antes da vírgula.
- U(000000,00 a 999999,99)
- nome_paciente, 50 caracteres do alfabeto e espaço
- U(" “,”a“,”b“, …,”A“,”B“, …)
Uma relação é definida como um conjunto de tuplas. Por definição todos os elementos de um conjunto são distintos. Assim, todas as tuplas de relação também devem ser distintas.
Na prática essa restrição é assegurada com a definição de um ou mais atributos como chave.
Como alternativa para gerenciar essa chave, é possível utilizar, por exemplo identificadores.