Sistemas de Informação Sistema de informação Modelo entidade-associação Bases de dados relacionais: modelo, linguagens de dados (álgebra e SQL) e normalização. Ferramentas de desenvolvimento de aplicações Sistemas relacional-objecto Exploração de uma BD: segurança, integridade, concorrência, recuperação. Gabriel David FEUP - Rua Dr. Roberto Frias 4200-465 Porto - PORTUGAL Tel. 351-225081748 - Fax: 351-225081440 Email: [email protected] URL: http://www.fe.up.pt 1 Problema Pretende-se construir um sistema de informação para uma parte da actividade de uma escola a escola ministra cursos que têm um código e uma designação os planos de estudos dos cursos são compostos por disciplinas leccionadas na escola; cada disciplina tem um código, uma sigla e uma designação; a mesma disciplina pode ser oferecida em vários cursos cada turma segue um curso, num determinado ano curricular e é identificada por uma letra os professores são descritos pelo seu BI, nome, morada, telefone, grau académico e grupo a que pertencem os professores leccionam disciplinas às turmas, embora nem todos os alunos frequentem todas as disciplinas os alunos são descritos pelo seu BI, nome, morada, telefone e data de nascimento; cada aluno está atribuído a uma turma e está inscrito a disciplinas nas quais obtém classificações. Introdução - 2 O que é uma Base de Dados? Introdução - 3 A organização Introdução - 4 Sistema de informação Funções do SI 1 Gerar as informações primárias • representam a actividade do Sistema Operante no seio do seu ambiente 2 Memorizar • informações primárias • evolução do ambiente • certas informações-decisão • algumas informações elaboradas (resultados de processamento) 3 4 Assegurar o acesso à memória e a comunicação das informações. Tratar certas informações, a pedido do Sistema de Decisão. Introdução - 5 Informação e informática Gestão de informação informação vista como um recurso e como tal gerida responsável do Sistema de Informação é um gestor Sistema de informação automatizado parte correspondente às informações formalizáveis ou codificáveis funcionando com a ajuda de um equipamento informático assente num sistema de processamento de dados, sob a responsabilidade de um Informático em estreita coordenação com o Gestor de Informação (por vezes confundem-se os papéis) maioria dos SI assentam num sistema de BD mais ou menos integrado, mas tem mais componentes (comunicações, documentação, fontes externas, …) Introdução - 6 Conteúdo da BD P1: Critérios de selecção das informações a memorizar? P2: Organização e acesso a este arquivo? R2: resposta durante todo o resto da cadeira R1: deverão ser sistematicamente memorizadas as informações primárias geradas com cada uma das transacções, nas fronteiras do sistema, envolvendo os vários recursos que a organização se propõe gerir Estruturação da memória • a partir das informações a guardar • não a partir dos tratamentos/resultados das aplicações pretendidos para permitir múltiplas utilizações das informações memorizadas Introdução - 7 Base de Dados uma BD é um conjunto de informações armazenado de forma permanente num sistema informático constituído por vários subconjuntos ordenados e estruturados as informações estão associadas entre si o Sistema de Gestão de Bases de Dados (SGBD) integra todo o software de criação, acesso e manutenção da BD indissociável do conceito de BD as aplicações recorrem ao SGBD mesmo SGBD pode suportar várias BD Introdução - 8 Sistema de Gestão de BD Funções dados persistentes acesso arbitrário e eficiente a grandes quantidades de dados suporte de um modelo de dados (abstracção matemática) • complexidade exige princípios sólidos linguagem de dados de alto nível, mas conveniente para vários tipos de utilizadores (casual, especializado, programador) • LDD: definir • LI: interrogar • LMD: manipular gestão de transacções (concorrência) controlo de acessos (segurança) robustez (integridade e recuperação) Introdução - 9 Diagrama de um SGBD Pergunta interactiva Tabelas de autorizações Aplicação Esquema Processador da linguagem de interrogação Compilador Gestor da BD Tabelas de acesso concorrente Tabelas de descrição da BD Gestor de ficheiros BD física Introdução - 10 Exemplo dos Cursos codcurso designacur Curso segue Turma letra ano plano lecciona atribuído coddis Disciplina sigla designadis BI nome BI morada nome telefone resultado inscrito Professor Aluno morada habilitação telefone grupo data_nasc Introdução - 11 Perspectivas diferentes codcurso designacur Curso BI nome Aluno morada plano data_nasc coddis sigla telefone Disciplina inscrito resultado designadis Cálculo de médias Introdução - 12 Perspectivas diferentes Turma segue codcurso designacur Curso lecciona letra ano plano designadis nome morada coddis sigla BI Disciplina telefone Professor habilitação grupo Distribuição de serviço Introdução - 13 Níveis de abstracção • “subconjunto” do esquema conceptual - compatibilidade, mapping - diversidade de usos - evolução • esquema conceptual - descrição abstracta - entidade-associação - modelo relacional - unicidade - estabilidade utilizadores interactivos aplicações vista n vista 1 ... independência lógica BD conceptual independência física • esquema interno - descrição técnica - implementação - depende do SGBD - optimização, eficiência - realização parcial realidade BD física memória Introdução - 14 Nível conceptual Partida Chegada - realidade apreendida - linguagem da organização - ciências humanas - nível físico - linguagem informática - engenharia Esquema conceptual entidade-associação Esquema lógico modelo relacional Linguagem natural e rigorosa Introdução - 15 Independência dos dados Imunidade das aplicações a alterações na estrutura de memorização e na estratégia de acesso Independência lógica: das vistas para o esquema conceptual suporta evolução no esquema conceptual sem obrigar a alterar as aplicações que usam a vista permite diferentes percepções adaptadas ao utilizador Independência física: do esquema conceptual para o esquema interno permite alterações na localização e estrutura de armazenamento dos dados Introdução - 16 Exemplo da matriz realidade nível conceptual f(i) = j=1m A[i,j] (pode ser mais abstracto que o conceptual) independência física A[i,j] está no endereço a0 + 4( m(i-1) + j - 1) vista integer array[1..n; 1..m] nível físico matriz armazenar por colunas, em vez de por linhas, para eficiência independência lógica aumentar a matriz, mantendo f(i) Introdução - 17