Introdução a Bancos de Dados Introdução à Informática DCC -UFMG Bancos de Dados Aula 1 Problema Uma empresa mantém informações sobre todos os seus funcionários e produtos em arquivos. Problemas: Os programas e arquivos são criados por programadores diferentes Ambiente não permite consulta aos dados de forma eficiente. Dados podem estar em diferentes formatos Dificuldade de se trabalhar com múltiplos usuários e ainda os problemas de segurança. SGBDs Um sistema de gerenciamento de bancos de dados (SGBD) consiste numa coleção única de dados inter-relacionados e um conjunto de programas para acessar esses dados. Objetivo: proporcionar um ambiente conveniente para retirar, acessar e armazenar informação no banco de dados. Objetos Objetos são abstrações de coisas semelhantes. Desconsideramos detalhes nas abstrações. Por exemplo, uma pessoa pode ser entendida como um empregado de uma empresa, uma paciente de um hospital, um criminoso em uma delegacia, etc... Definição de um objeto Atributos Um atributo é a abstração de uma única característica possuída pelas entidades que foram classificadas como um objeto, ou seja, uma característica comum a todas essas entidades. COR Exemplo Atributos do objeto carro: Cor Marca Ano de fabricação Modelo Preço Tipos de atributos Os atributos podem ser: descritivos: refletem características intrínsecas ao objeto (ex: cor) nominativos: nomes (ex: código do carro). referenciais: fatos que ligam uma instância de um objeto a uma instância de outro objeto. (ex: fabricante) Tipos de atributos Defina um atributo descritivo, um nominativo e um referencial para o objeto Empregado mostrado abaixo: Tipos de atributos Descritivo: Salário Nominativo: CódigoEmpregado Referencial: NomeDepartamento Chave Um conjunto de um ou mais atributos que unicamente distingue cada exemplo de um objeto é chamado identificador para aquele objeto. Um identificador pode ser chamado de chave. CHAVE Chave Seja a entidade abaixo. Como ela pode ser criada em forma de tabela ? Que atributo seria a chave? Chave Bancos de Dados Aula 2 Relacionamentos Um relacionamento é uma abstração de um conjunto de associações que existe entre espécies diferentes de coisas do mundo real. Tipos de relacionamentos Os relacionamentos podem ser: um para um: um departamento possui um diretor. Um diretor é de um departamento. Tipos de relacionamentos Um para muitos: um departamento possui de 0 a N empregados. um empregado trabalha em um departamento. Tipos de relacionamentos Muitos para muitos: autores escrevem livros. Essa multiplicidade de cada relacionamento é também chamada de cardinalidade. Problema Suponha que você seja dono de uma locadora de vídeos. Você deseja armazenar dados de estoque e empréstimos dos seus filmes. Definição das Entidades Quais coisas do mundo real fazem parte do universo do seu problema? Objeto: Fita. No modelo entidaderelacionamento, os objetos são chamados de entidade. Definição dos atributos Em seguida, você deve pensar em como caracterizar uma fita. Você pode chegar a conclusão de que cada fita possui: um nome uma duração um diretor um preço de compra Tipos de Entidades Uma entidade pode ser: um objeto com uma existência física: uma pessoa particular, um carro, uma casa ou um empregado. um objeto com uma existência conceitual: uma empresa, um emprego ou um curso universitário. Representação da Entidade Instâncias da Entidade Representação das entidades Chaves As entidades podem possuir chave: um atributo cujo valor que identifica unicamente a entidade. Exemplo - Chave Pessoa Aluno CPF Número da carteira de identidade Número de matrícula Não pode haver duas pessoas com o mesmo número de CPF!!! Criando chaves Criando relacionamentos Cardinalidade Todo relacionamento possui uma cardinalidade. Um filme é dirigido por apenas um diretor (1-1) e um diretor pode dirigir de zero a muitos filmes (0-N). A cardinalidade deste relacionamento é "zero para n". (Pode haver um diretor que não dirigiu nenhum filme). ACCESS ACCESS Bancos de Dados Aula 3 Modelo Relacional O modelo relacional representa o banco de dados como um conjunto de tabelas que podem se relacionar. Cada tabela é composta por um conjunto de valores divididos pelos seus diversos campos. Exemplo Transição ER Relacional Diagrama de entidade relacionamento é diretamente convertido no modelo relacional. Cada entidade criada no modelo entidaderelacionamento será considerada uma tabela no Access. Criação dos campos As colunas de uma tabela no modelo relacional correspondem aos atributos do modelo entidaderelacionamento. Na definição de uma tabela, podemos definir para cada campo: nome, tipo, descrição. Propriedades dos campos Para cada campo, podemos definir as seguintes propriedades: tamanho, valor padrão requerido. Exemplo de propriedades Atributo NomeFita da Tabela Fita. Tamanho do campo: este campo possui tamanho 100, ou seja, podem ser inseridos nesta tabela nomes de fitas de até 100 caracteres. Valor padrão: este campo não possui valor padrão. Requerido: é obrigatório sempre definir um valor para o campo "NomeFita". Exemplos de propriedades Criação de chaves e relacionamentos Recursos do Access O Microsoft Access torna o tratamento das informações contidas nos bancos de dados muito mais fácil. Ele trabalha com os recursos: consultas, relatórios e formulários. Consultas Para a tabela abaixo, podemos fazer algumas consultas: Consultas Quais os nomes dos filmes cuja duração é maior que 135 minutos? Quais os nomes dos filmes cujo preço seja é menor que 21,00 reais? Relatórios As consultas podem ser visualizadas na própria tela do computador ou através de relatórios. Os relatórios trazem os dados que satisfazem a um certo critério de uma consulta. Exemplo, um relatório com todos os filmes da locadora que custaram mais que 21 reais. Exemplo - Relatório Formulários Formulários são muito usados para entrada de dados em seu banco de dados. Possuem uma interface que permite que o usuário entre dados de forma fácil e simples. Exemplo - Formulários Filmes dirigidos por Ridley Scott. Normalização Perigos potenciais no projeto de um banco de dados: repetição de informação: informações repetidas consomem espaço de armazenamento e dificultam a atualização. incapacidade de representar parte da informação: por vezes temos que incluir valores nulos nos bancos de dados. perda de informação. Normalização Para evitar esses problemas, o projeto de um banco de dados deve passar pela fase de normalização. Um processo de transformação das relações (tabelas e relacionamentos) em novas relações pela aplicação de quebra de tabelas. Normalização Este processo tem como conseqüências: problemas de anomalias e inconsistências diminuem relações se tornam simplificadas e regulares aumento de integridade dos dados. O processo de normalização consiste de três fases. Primeira Forma Normal a (1 FN) A primeira forma normal (1a FN) diz que todos os atributos admitem apenas valores atômicos, ou seja, os valores devem ser simples, não repetidos. Primeira Forma a Normal (1 FN) Não está na 1aFN Primeira Forma a Normal (1 FN) ( Dados repetidos ) Procedimento a (1 FN) Identificar a chave primária da tabela. Identificar o grupo repetitivo e removê-lo da tabela. Criar uma nova tabela com a chave primária da tabela anterior e a do grupo repetitivo. Segunda Forma a Normal (2 FN) Para que a segunda forma normal seja obedecida, a primeira forma normal deve ser satisfeita também. A segunda forma normal (2a FN) diz que cada atributo não chave deve ser dependente de toda a chave primária, ou seja, não podem existir atributos que não dependam da chave ou dependam apenas de parte da chave primária. Segunda Forma a Normal (2 FN) ( Cidade não depende de Código-Fornecedor ) Procedimento a (2 FN) Identificar os atributos que não são funcionalmente dependentes de toda a chave primária. Remover da tabela todos esses atributos identificados e criar uma nova tabela com eles. Os atributos removidos devem ser dependentes da chave primária da nova tabela . Terceira Forma Normal a (3 FN) Para que a terceira forma normal seja obedecida, a segunda forma normal deve ser satisfeita também. A terceira forma normal diz que cada atributo não chave é dependente da chave primária e que todos os atributos não chave são independentes entre si. Terceira Forma Normal a (3 FN) ( O preço é calculado a partir da área ) Procedimento a (3 FN) Identificar todos os atributos que são dependentes de outros atributos não chave. Removê-los e/ou criar uma nova tabela com os mesmos. Os atributos removidos devem ser dependentes da chave primária da nova tabela .