Prévia do material em texto
Linguagem de Programação Linguagem de Programação Apresentação Prof. Anderson Santos Barroso Graduado em Ciência da Computação - 2002 Esp. Sistemas de Informação para Web - 2004 Aulas nas cadeiras de Programação desde 02/2005 Analista de Sistemas ERP desde 02/2004 giga.anderson@gmail.com anderson_barroso@unit.br 2 Linguagem de Programação O que iremos ver? Noções Básicas MER Entidades; Relacionamentos; Atributos. 3 Linguagem de Programação Modelo de Dados Imagine um arquiteto explicando a um cliente o projeto da sua nova casa. Planta Baixa; Plantas adicionais para detalhes complexos como visões de perspectivas; Maquete. 4 Linguagem de Programação Modelo de Dados 5 Modelo Essa ideia não é nova. Arquitetura. Engenharia. Modelos dos movimentos das marés. Modelos de condições climáticas. Objetivo: Representar ou reproduzir a estrutura e o comportamento do original, no todo, ou parte. Linguagem de Programação Modelo de Dados 6 Por que Modelar na Engenharia de Software? Capturar requisitos. Representá-los. Guiar o processo de desenvolvimento de software. Linguagem de Programação Modelo de Dados 7 O que é um Modelo de Dados? Coleção de ferramentas conceituais para descrição de dados, relacionamento entre eles, semântica e restrições de dados (Henry F. Korth). Linguagem de Programação Modelo de Dados 8 Coleção de ferramentas conceituais Construtores do Modelo de Dados Sequências de símbolos permitidos na construção de uma sentença; Exemplo no caso da arquitetura: existem símbolos para representar portas, janelas, entre outros. Linguagem de Programação Modelo de Dados 9 Modelagem de Dados: Consiste em mapear o mundo real do sistema em um modelo gráfico que irá representar o modelo e o relacionamento existente entre os dados. Através da modelagem de dados, pretende-se capturar a semântica (significado) da situação considerada. Utilizado em conjunto com outras técnicas de ES. Linguagem de Programação Modelo de Dados 10 Diferentes pessoas possuem diferentes visões dos mesmos dados; Diferentes pessoas possuem diferentes maneiras de executar uma análise. Linguagem de Programação Modelo de Dados 11 Modelagem de Dados: Executada através da construção de diagramas e modelos que possuem um conjunto de conceitos que podem ser usados para descrever a estrutura de um banco de dado, tipos de dados, relacionamentos e restrições. Linguagem de Programação Noções Básicas - MER 12 Modelo conceitual de alto nível empregado em projetos de aplicações de BD, criado em 1976 por Peter Chen. Descrição dos dados inclui: Entidades. Atributos. Relacionamentos. Possui notação em forma de diagramas. Linguagem de Programação Modelo de Entidade e Relacionamento - MER 13 “O modelo de dados entidade-relacionamento baseia-se na percepção de um universo constituído por um grupo básico de objetos chamados entidades e por relacionamentos entre estes objetos. Ele foi desenvolvido a fim de facilitar o projeto de banco de dados permitindo a especificação de um esquema de empreendimento. Tal esquema representa estrutura lógica global do banco de dados.” (SILBERSCHATZ) Linguagem de Programação Entidades - Definição 14 Conjunto de objetos da realidade modelada sobre os quais deseja-se manter informações no Banco de Dados. Uma entidade pode representar objetos concretos da realidade (pessoas, automóveis, material, nota fiscal) quanto objetos abstratos (departamentos, disciplinas, cidades). A entidade se refere a um conjunto de objetos; para se referir a um objeto em particular é usado o termo instância (ou ocorrência). No DER, uma entidade é representada através de um retângulo que contém o nome da entidade. Linguagem de Programação Entidades - Definição 15 Linguagem de Programação Entidades - Exemplo 16 Para cada funcionário é armazenado o nome, registro geral, endereço, salário. Um funcionário esta associado a um departamento mas pode trabalhar em vários projetos, o qual não é necessariamente controlado pelo mesmo departamento. O número de horas que cada funcionário trabalha em cada projeto por semana e o seu supervisor direto devem ser registrados. Temos também os dependentes de cada funcionário para diferentes propósitos. Para isso, temos o nome, aniversário e o parentesco do dependente com o funcionário. Linguagem de Programação Entidades - Exemplo 17 Linguagem de Programação Relacionamento 18 É toda associação entre entidades, sobre a qual deseja-se manter informações no Banco de Dados. Os relacionamentos representam fatos, situações, eventos, acontecimentos da realidade, onde as entidades interagem de alguma forma. Um dado por si só não faz uma informação, pois não tem sentido próprio; é necessário que haja uma associação de dados para que a informação seja obtida. No DER, os relacionamentos são representados por losangos, ligados às entidades que participam do relacionamento. Linguagem de Programação Relacionamento 19 Linguagem de Programação Auto - Relacionamento 20 Linguagem de Programação Cardinalidade de Relacionamento 21 Restrição que expressa o número de entidades ao qual outra entidade pode estar associada via um relacionamento. Linguagem de Programação Cardinalidade Um-para-Um (1:1) 22 Um-para-um (1:1): uma entidade em A está associada a no máximo uma entidade em B, e uma entidade em B está associada a no máximo uma entidade em A. Linguagem de Programação Cardinalidade Um-para-Um (1:1) 23 Linguagem de Programação Cardinalidade Um-para-Muitos (1:N) 24 Um-para-muitos (1:N): uma entidade em A está associada a qualquer número de entidades em B, entretanto uma entidade em B está associada a no máximo uma entidade em A. Linguagem de Programação Cardinalidade Um-para-Muitos (1:N) 25 Linguagem de Programação Cardinalidade Muitos-para-Muitos (N:N) 26 Muitos-para-muitos (N:N): uma entidade em A está associada a qualquer número de entidades em B, e uma entidade em B está associada a qualquer número de entidades em A. Linguagem de Programação Cardinalidade Muitos-para-Muitos (N:N) 27 Linguagem de Programação Classificação de Relacionamentos 28 Linguagem de Programação Atributos 29 É um dado que é associado a cada ocorrência de uma entidade ou relacionamento. Os atributos não possuem existência própria ou independente - estão sempre associados a uma entidade ou relacionamento. Linguagem de Programação Atributos 30 Valores de atributos para entidade escritor: Nome: Fernando Pessoa Nacionalidade: portuguesa Data de nascimento: 13 de Junho de 1888 Local de nascimento: Lisboa Data de morte: 30 de Novembro de 1935 Heterônimo: Álvaro de Campos, Ricardo Reis, Alberto Caeiro Linguagem de Programação Atributos Simples X Composto 31 Atributo simples: atributo tem um único valor atômico Exemplo de atributo de escritor: nacionalidade Atributo composto: atributo composto por vários componentes. Exemplo: data de nascimento composto por dia, mês e ano. Linguagem de Programação Atributos Simples 32 Linguagem de Programação Atributos Composto 33 Linguagem de Programação Exemplo Locadora 34 Uma pequena locadora de vídeos possui cerca de 2.000 DVDs, cujo empréstimo deve ser controlado. Cada DVD possui um número. Para cada filme, é necessário saber seu título e sua categoria (comédia, drama, aventura, …). Cada filme recebe um identificador próprio. Para cada DVD é controlado que filme ele contém. Para cada filme há pelo menos um DVD. Alguns poucos filmesnecessitam de mais de um DVD. Os clientes podem desejar encontrar os filmes estrelados pelo seu ator predileto. Por isso, é necessário manter a informação dos atores que atuam em cada filme. Os clientes, às vezes, desejam receber referências de determinado ator, tais como o nome real, a data de nascimento, etc. A locadora possui muitos clientes cadastrados. Somente clientes cadastrados podem alugar DVDs. Para cada cliente é necessário saber seu pré-nome e seu sobrenome, seu telefone e seu endereço. Além disso, cada cliente recebe um número de associado. Finalmente, desejamos saber quais DVDs estão locados por um dado cliente. Um cliente pode locar vários DVDs ao mesmo tempo. Não são mantidos registros históricos de aluguéis. Linguagem de Programação Exemplo Locadora 35 Vamos identificar as Entidades; Atributos; Relacionamentos. ??? Linguagem de Programação Exemplo Locadora – Identificando Entidades 36 Uma pequena locadora de vídeos possui cerca de 2.000 DVDs, cujo empréstimo deve ser controlado. Cada DVD possui um número. Para cada filme, é necessário saber seu título e sua categoria (comédia, drama, aventura, …). Cada filme recebe um identificador próprio. Para cada DVD é controlado que filme ele contém. Para cada filme há pelo menos um DVD. Alguns poucos filmes necessitam de mais de um DVD. Os clientes podem desejar encontrar os filmes estrelados pelo seu ator predileto. Por isso, é necessário manter a informação dos atores que atuam em cada filme. Os clientes, às vezes, desejam receber referências de determinado ator, tais como o nome real, a data de nascimento, etc. A locadora possui muitos clientes cadastrados. Somente clientes cadastrados podem alugar DVDs. Para cada cliente é necessário saber seu pré-nome e seu sobrenome, seu telefone e seu endereço. Além disso, cada cliente recebe um número de associado. Finalmente, desejamos saber quais DVDs estão locados por um dado cliente. Um cliente pode locar vários DVDs ao mesmo tempo. Não são mantidos registros históricos de aluguéis. Linguagem de Programação Exemplo Locadora – Entidades e Atributos 37 Uma pequena locadora de vídeos possui cerca de 2.000 DVDs, cujo empréstimo deve ser controlado. Cada DVD possui um número. Para cada filme, é necessário saber seu título e sua categoria (comédia, drama, aventura, …). Cada filme recebe um identificador próprio. Para cada DVD é controlado que filme ele contém. Para cada filme há pelo menos um DVD. Alguns poucos filmes necessitam de mais de um DVD. Os clientes podem desejar encontrar os filmes estrelados pelo seu ator predileto. Por isso, é necessário manter a informação dos atores que atuam em cada filme. Os clientes, às vezes, desejam receber referências de determinado ator, tais como o nome real, a data de nascimento, etc. A locadora possui muitos clientes cadastrados. Somente clientes cadastrados podem alugar DVDs. Para cada cliente é necessário saber seu pré-nome e seu sobrenome, seu telefone e seu endereço. Além disso, cada cliente recebe um número de associado. Finalmente, desejamos saber quais DVDs estão locados por um dado cliente. Um cliente pode locar vários DVDs ao mesmo tempo. Não são mantidos registros históricos de aluguéis. Linguagem de Programação Exemplo Locadora – Entidades e Atributos 38 Linguagem de Programação Exercícios 39 Uma administradora de condomínios deseja construir um sistema para gerenciamento de edifícios. Para cada edifício é necessário armazenar o endereço, a data de construção e a data da última vistoria. Cada edifício possui vários apartamentos. Cada apartamento tem um número e área (m2). Em cada apartamento vivem várias pessoas. As pessoas possuem nome, CPF, data de nascimento e sexo. Linguagem de Programação Exercícios 40 E se quiséssemos armazenar as informações sobre os pagamentos do condomínio. Como poderíamos incluir isto neste modelo? Linguagem de Programação Exercícios 41 Uma Escola tem várias turmas. Uma turma tem vários professores, sendo que um professor pode ministrar aulas em mais de uma turma. Uma turma tem sempre aulas na mesma sala, mas uma sala pode estar associada a várias turmas (com horários diferentes). Elabore um DER que responda a: Quais os professores de uma dada turma? Que turmas um professor ensina? Em que salas um professor ensina?