Prof. Sandro Monteiro – Serviços da Internet (2º Ano de Informática IMEP – 1o Semestre de 2011) Disciplina: Base de dados I Aula 05– Data: 17.02.2011 Vantagens do SGBD Usando um SGBD para gerenciar dados tem muitas vantagens tais como: Data da independência: os programas de aplicação devem ser tão independentes quanto possível a partir de detalhes de representação de dados e armazenamento. O SGBD pode fornecer uma visão abstracta dos dados para isolar código da aplicação de tais detalhes. Acesso eficiente aos dados: SGBD utiliza uma variedade de técnicas sofisticadas para armazenar e aceder dados eficientemente. Integridade dos dados e segurança: se os dados são sempre acedidos através do SGBD, o mesmo (SGBD) pode impor restrições de integridade dos dados. Além disso, o SGBD pode impor controle de acesso que regem os dados que são visíveis para diferentes classes de usuários. Administração de dados: quando vários usuários compartilham os dados, centralizar a administração de dados oferece melhorias significativas. Acesso simultâneo e recuperação de desastres: Um SGBD define o aceso concorrente aos dados de tal forma que os usuários pensem que os dados são acessados por um único usuário por cada vez. Além disso, o SGBD protege os usuários contra os efeitos e de falhas do sistema. Redução do tempo de desenvolvimento de aplicações: Claramente, o SGBD suporta muitas funções importantes que são comuns a muitas aplicações no processo do acesso aos dados armazenados no SGBD. Isto, em conjunto com a interface de alto nível com os dados, facilita o rápido desenvolvimento de aplicações. Tais aplicações são também susceptíveis de ser mais robusto do que as aplicações desenvolvidas a partir do zero, porque muitos importantes tarefas são manipulados pelo SGBD ao invés de ser implementada pela aplicação. Discrição e armazenamento de dados em um SGBD O usuário de um SGBD é basicamente relacionado com alguma ideia do mundo real, e os dados a serem armazenados descreve vários aspectos dessa mesma ideia. Por exemplo, existem estudantes, professores e cursos em uma universidade, e os dados em um banco dessa universidade descrevem essas entidades e seus relacionamentos. Um modelo de dados é uma colecção de alto nível de descrição de dados que escondem muitos detalhes de baixo nível de armazenamento. Um SGBD permite que um usuário de definir os dados a serem armazenados em termos de um modelo de dados. A maioria dos sistemas de gerenciamento de banco de dados de hoje são baseados no modelo de dados relacional, que iremos focar nas nossas aulas. 1 Prof. Sandro Monteiro – Serviços da Internet (2º Ano de Informática IMEP – 1o Semestre de 2011) O modelo relacional O centro da descrição dos dados nesse modelo (modelo relacional) é à relação, que pode ser pensado como um conjunto de registos. A descrição dos dados em termos de um modelo de dados é chamado de esquema. No modelo relacional, o esquema de uma relação específica o seu nome, o nome de cada campo (ou atributo ou coluna), e do tipo de cada campo. Como exemplo, a informação dum estudante num banco de dados de uma universidade podem ser armazenados em uma relação com o seguinte esquema: Students (sid: string, name: string, login: string, age: integer, gpa: real) O esquema anterior, diz que cada registo na relação de alunos (students) tem cinco campos, com nomes de campo e tipos, como indicado. Esse exemplo de instância da relação Estudantes (students) aparece na figura que segue: Cada linha da relação students é um registo que descreve um estudante. A descrição não é completa - por exemplo, a altura do aluno não está incluído mas é presumivelmente adequado para aplicações previstas no banco de dados da universidade. Cada linha segue o esquema da relação students. O esquema pode ser considerado como um modelo para descrever um estudante. Nós podemos fazer a descrição de uma colecção de alunos mais precisa especificando restrições de integridade, que são condições que os registos dessa relação devem satisfazer. Por exemplo, podemos especificar que cada aluno tem um valor único sid. Observa que não podemos capturar essas informações por simples acréscimo de mais um campo para o esquema students. Assim, a capacidade de especificar exclusividade dos valores em um campo aumenta a precisão com que podemos descrever nossos dados. A expressividade dos constructs disponíveis para especificar restrições de integridade é um aspecto importante para um modelo de dados. 2 Prof. Sandro Monteiro – Serviços da Internet (2º Ano de Informática IMEP – 1o Semestre de 2011) Outros modelos de dados Além do modelo de dados relacional (que é usado em vários sistemas, incluindo IBM's DB2, Informix, Oracle, Sybase, Microsoft's Access, FoxBase, Paradox, Tandem, e Teradata), outros modelos de dados importantes incluem o modelo hierárquico (por exemplo, usado em IBM's IMS DBMS), o modelo de rede (por exemplo, usado em IDS e IDMS), o modelo orientado ao objecto (por exemplo, usado em ObjectStore e Versant), e o modelo objecto-relacional (por exemplo, usados em produtos de SGBD IBM, Informix, ObjectStore, Oracle, Versant, e outros). Embora existam muitos bancos de dados que usam os modelos hierárquico e de rede, e sistemas baseados nos modelos orientados a objectos e objecto-relacional estão ganhando aceitação no mercado, mas o modelo dominante hoje é o modelo relacional. Níveis de abstracção em um SGBD A descrição do banco de dados consiste de um esquema para cada um destes três níveis de abstracção: Os esquemas conceituais; Os esquemas físicos e Esquemas externo. 3