MODELO OBJECTO - RELACIONAL ORACLE 8

Tamanho: px
Começar a partir da página:

Download "MODELO OBJECTO - RELACIONAL ORACLE 8"

Transcrição

1 MODELO OBJECTO - RELACIONAL ORACLE 8 Trabalho realizado no âmbito da cadeira Concepção e Administração de Bases de Dados Mestrado em Engenharia Informática Departamento de Engenharia Informática Universidade de Coimbra Filipe Manuel Simões Caldeira, 1999

2 Índice Introdução... 3 Bases de Dados Orientadas a Objectos... 4 Orientação a Objectos... 4 O Objecto... 4 Hierarquias das Classes... 6 O Modelo Objecto - Relacional do Oracle Objectos em Oracle... 7 Definição de objectos... 7 Métodos... 9 Métodos de comparação... 9 Tabelas de Objectos (Object Tables) Referências Tipos de Referências Dados do Tipo Colecção Varray Nested Tables Varrays Vs Nested Tables Uma estrutura de dados no Modelo Objecto-relacional Estrutura de Dados no Modelo Relacional: Estrutura de dados no Modelo Objecto - Relacional: Conclusão Bibliografia Pág. 2

3 Introdução Pretende-se com este trabalho, mostrar de uma forma simples a utilização do object options pack do sistema Oracle 8 para implementar o modelo objectorelacional no desenho e estruturação de bases de dados. É abordada a forma de pensar e programar orientada a objectos, focando naturalmente as bases de dados. Apresentam-se também as principais novidades do Oracle no que se refere a objectos e seu modo de funcionamento e implementação. Foi introduzido um exemplo que pretende demonstrar a aplicação desta metodologia a um problema concreto. Este problema é abordado usando o modelo relacional e posteriormente é usado o modelo objecto-relacioanl, permitindo assim efectuar uma comparação entre os dois métodos. Pág. 3

4 Bases de Dados Orientadas a Objectos Uma base de dados orientada a objectos pode ser definida, de um modo geral, como sendo uma extensão de dois conceitos já bastante conhecidos e divulgados: As linguagens orientadas a objectos, por exemplo o C++ e um sistema de gestão de bases de dados. Um sistema OODBMS, conjuga as principais características destes dois sistemas, herdando da programação orientada a objectos, as noções de Objecto, Abstracção de Tipo de Dados, Métodos, Mensagens, Herança e Identidade de cada Objecto; das bases de dados relacionais, pode usar as características de Persistência, Transacções, Recuperação, Segurança. Pesquisa, Performance, etc. Orientação a Objectos O Objecto O principal componente do paradigma de orientação a objectos é o objecto. O Objecto pode ser do tipo primitivo, por exemplo os números inteiros (2,6,8,...), correspondendo a valores simples, ou do tipo complexo, normalmente definidos pelo programador, correspondendo a variáveis com uma maior ou menor complexidade interna, podendo conter vários dados (variáveis), bem como estruturas de programação no seu interior. Exemplo de um objecto: Um objecto que pretende representar a informação respeitante a um aluno: {Número, Nome, Curso, Morada, telefone,... } Cada objecto tem um determinado tipo (Type), denominado class. Sendo que cada objecto individual de um determinado tipo ou classe é denominado instância. Ao conjunto de funções e operadores que podem agir sobre uma determinada classe, chama-se Métodos. Todos os objectos estão encapsulados, isto é, a estrutura interna de um determinado objecto não é visível ao utilizador desse objecto, sabendo apenas que o objecto pode realizar determinadas funções (Métodos). Por exemplo, podem ser aplicados os seguintes métodos ao objecto alunos: Aprovar_Aluno, Matricular_Aluno Pág. 4

5 etc. O código que implementa os métodos está contido dentro do próprio objecto e pode utilizar a representação interna do objecto para efectuar a sua função. A principal vantagem do encapsulamento é permitir alterações na representação interna dos objectos, sem implicar que se tenha que alterar as aplicações que usem esses mesmos objectos. Obviamente que uma alteração na representação interna de um determinado objecto, implicará as alterações correspondentes no código que implementa os métodos existentes para esse objecto. O conceito de encapsulamento, permite ver o objecto como tendo duas componentes: Memória Privada e Interface Publico: A memória privada é constituída pelas variáveis ou atributos do objecto que representam o seu estado interno. Estas variáveis estão escondidas do utilizador, mas visível para o código que implementa os diversos métodos desse objecto. Este conceito aplica-se aos sistemas Orientados a Objectos Puros. Quer dizer que a maior parte dos sistemas orientados a objectos permitem que o programador veja alguns dos atributos do objecto partindo do seu exterior. O Interface Publico consiste na definição da interface entre o objecto e o programador, basicamente entrada e saída de dados de e para os métodos existentes no objecto. O código que implementa este interface (implementa os métodos) também não é visível ao programador. O interface Publico faz parte da definição da classe do objecto, estando presente apenas no objecto que define a classe e não em cada uma das instâncias dessa classe. Os métodos ou acções sobre objectos, são activados usando um sistema de mensagens, funcionando estas como chamadas a funções ou procedimentos em que o alvo é identificado. Por exemplo, suponha-se que se pretende escrever o aluno A na cadeira X, então poderia existir uma mensagem (com uma sintaxe hipotética) para o alunos X, fazendo com que ele passe a estar matriculado nem uma determinada cadeira : A Matricular (X) ou Matricular(A,X) Cada objecto definido tem uma identidade ou identificação única, a que podemos chamar Object ID ou identificador de objecto. O identificador do objecto poderá ser usado na base de dados como sendo um ponteiro para o objecto a que se refere. Nesta abordagem, não é necessário que cada objecto tenha uma chave candidata ou primária, pelo que podem existir dois objectos virtualmente iguais, sendo apenas distinguidos pelo seu identificador de objecto. Pág. 5

6 A utilização do identificador de objecto, permite criar no modelo objectorelacional, a noção de hierarquia, podendo então um determinado objecto ter um ou mais atributos que são referências a outros objectos. Hierarquias das Classes Nesta abordagem, existe o que podemos chamar hierarquia de classes, sendo esta hierarquia definida por: Por exemplo, podemos dizer que a classe de objectos Y é uma subclasse de X, se e só se todos os objectos de Y forem objectos de X. Do mesmo modo podemos dizer que X é uma superclasse de Y. Neste caso, os objectos da classe Y, vão herdar (Noção de herança) as variáveis e métodos que se aplicam á classe X. Como consequência deste facto, podemos utilizar um objecto do tipo Y sempre que é permitido o uso de um objecto do tipo X. A herança pode ser simples ou múltipla, isto é, uma determinada classe pode ser a subclasse de várias superclasses em simultâneo. A herança de variáveis é denominada herança estrutural; a herança de métodos é denominada herança comportamental. A possibilidade de aplicar os mesmos métodos a diferentes classes (desde que uma seja superclasse da outra) é chamada de polimorfismo. Pág. 6

7 O Modelo Objecto - Relacional do Oracle 8 Sendo um dos principais sistemas de gestão de bases de dados existente no mercado, o Oracle na sua versão 8 introduz uma nova abordagem de funcionamento com vista á implementação do seu novo modelo Objecto Relacional. Este modelo pretende ser um sistema de base de dados orientada a objecto, sendo contudo baseado no actual modelo relacional. Usando a opção object option do Oracle 8, este transforma-se num sistema Objecto - Relacional (ORDBMS), permitindo ao utilizador definir tipos de dados complexos Objectos definindo a sua estrutura, bem como definindo o seu modo de funcionamento Métodos. Estes novos tipos de dados (objectos) podem agora ser usados no tradicional modelo relacional, praticamente do mesmo modo como são utilizados os tipos de dados pré definidos do sistema Oracle (Números, Cadeias de Caracteres, datas, etc). Objectos em Oracle Um objecto em oracle é estruturado da mesma forma que os objectos nas linguagens de programação orientadas a objectos, permitindo que uma entidade real seja representada por objecto contendo todos os seus atributos. Deste modo podem-se referenciar três componentes presentes num objecto:?? Nome: Representa o tipo de dados no modelo da base de dados.?? Atributos: Todos os dados existentes dentro do objecto, representando a sua estrutura bem como o seu estado. Os atributos podem ser de tipo de dados standard do Oracle ou mesmo outros objectos.?? Métodos: Operações sobre o objecto, que podem ser escritos em PL/SQL sendo guardados na própria base de dados ou escritos noutra linguagem como por exemplo o C++ e guardados externamente. Definição de objectos Como exemplo pode ser usada um caso concreto de um objecto. Uma entidade real aluno, pode ser representada pela sua informação base: Pág. 7

8 - Número do Aluno - Nome - BI - Data de Nascimento Morada -... Um objecto deste tipo poderá ser definido como sendo: CREATE TYPE Morada AS OBJECT ( Rua VARCHAR(70), Cidade VARCHAR(40), Codigo_Postal VARCHAR(40), Pais VARCHAR(20), Telefone VARCHAR(10),... ); CREATE TYPE Aluno AS OBJECT ( Numero Nome, BI VARCHAR(10), Data_Nascimento DATE,..., Contacto MORADA,... ); Uma vez criados os objectos, estes podem ser usados de igual modo como os tipos de dados já existentes no Oracle, para a criação de uma base de dados relacional, por exemplo uma base de dados de alunos matriculados: CREATE TABLE Matriculas ( Identificação ALUNO, Ano_Lectivo Data_Matricula DATE ); Neste caso a tabela Matriculas é uma tabela de uma base de dados relacional, com a particularidade de conter numa das suas colunas um objecto, sendo esta coluna denominada Coluna Objecto. Pág. 8

9 Métodos Um tipo especial de método é o Método Construtor, que permite criar novas instâncias de um determinado tipo de objecto. O método construtor é uma função, devolvendo como resultado uma nova instância do objecto. Os seus parâmetros são o nome e tipo dos atributos do objecto a ser criado. O nome deste método corresponde por defeito ao nome do tipo do objecto a ser criado. Por exemplo para a criação de um novo aluno teríamos: Aluno ( 12345, Filipe Caldeira , 28/01/1971,..., Morada ( Quinta do Bosque Lt 127 5ºDP, Viseu, 3500 Viseu, Portugal, ,...); ) Métodos de comparação Sendo uma operação fundamental no funcionamento de uma base de dados, o Oracle já contém funções de comparação para os seus tipos de dados padrão, por exemplo é possível sem necessidade de nenhuma operação especial, comparar dois valores numéricos. Com a criação de objectos, surge a necessidade de comparar dois objectos distintos, sendo necessário neste caso construir um ou mais de métodos que permitam comparar estes objectos. Para resolver esta situação, o Oracle 8 põe á disposição do utilizador dois métodos: Métodos do tipo map e do tipo order. O método do tipo map, usa as funcionalidades já existentes para a comparação de tipos padrão, usando os atributos do objecto como factores da comparação. O método order, usa a lógica interna do objecto para efectuar a comparação entre dois objectos diferentes (do mesmo tipo), devolvendo um valor correspondente ao tipo de ordem, por exemplo 1 se o segundo objecto for maior que o primeiro. Na definição do objecto, apenas se pode definir um dos dois tipos de ordenação mencionados. Caso não seja especificado nenhum método de comparação, o motor de base de dados apenas pode concluir se dois objecto são iguais, nada podendo dizer sobre a sua ordem de relacionamento. Pág. 9

10 Tabelas de Objectos (Object Tables) Na aproximação objecto-relacional do oracle 8, os objecto são guardados no formato habitual das tabelas relacionais oracle. A uma tabela contendo objecto foi dados o nome de object table, permitindo aceder aos dados dos objectos de uma forma relacional, utilizando duas formas distintas: - Uma tabela apenas com uma coluna, em que cada registo é um objecto diferente. - Uma tabela com várias colunas, em que cada atributo do objecto ocupa uma coluna independente. Os objectos que aparecem numa linha da tabela, são chamados row objects, sendo aqueles que aparecem numa coluna chamados column objects. Referências Do mesmo modo que no modelo relacional, tem que ser dados algum tipo de tratamento ás relações muitos para um. No modelo relacional, são usadas chaves estrangeiras para manter a consistência da base de dados. No modelo objecto relacional o tipo de relação muitos para um é tratado usando Referências, isto é, o oracle atribui a cada objecto (objecto row), um identificador único e inalterável, chamado object identifier. Existe um tipo de dados pré-definido, chamado REF, que permite que um objecto seja referenciado por outros objecto ou por uma tabela. As referências podem ser usadas para visualizar ou modificar o objecto a que ela se refere ou para obter uma cópia desse mesmo objecto. As únicas alterações que podem ser feitas a uma referência são de a pôr a apontar para outro objecto do mesmo tipo ou para um valor nulo (Null). Object view: Como as Vistas (View) do tradicional modelo relacional, podemos agora criar um tipo diferente de vistas: As vistas objecto (Object view), que como as suas antecessoras não passam de tabelas virtuais, neste caso, tabelas objecto virtuais. O oracle 8 usa as referências de cada objecto para criar as vistas de objecto, permitindo aceder ás tabelas de uma forma mais personalizada. Por exemplo, pode-se usar uma vista objecto para aceder apenas a um determinado conjunto de atributos de um objecto. Pág. 10

11 Tipos de Referências Scoped REF s Elemento do tipo REF que contém apenas referências para objectos do tipo object table. Dangling REF s Referência que pode estar a apontar para um objecto que já não existe ou cujos privilégios foram alterados. Usando a função IS DANGLING o oracle permite saber se uma determinada referência está nestas condições. Dereferencing REF s Modo de aceder a objectos do Tipo REF. O Operador utilizado para esta operação é DEREF. Uma referência para um determinado objecto, pode ser obtida seleccionando esse objecto da tabela e aplicando o operador REF. Dados do Tipo Colecção O Oracle 8 dispõe de um tipo de dados que pode conter um número indefinido de objectos de um determinado tipo. Os tipos de dados colecção podem ser do tipo array ou do tipo tabela, correspondendo a tipos de dados Varray ou Nested Tables. Varray Um array é um conjunto ordenado de elementos do mesmo tipo, sendo que cada elemento desse array têm associado um número (index) correspondente á sua posição nesse mesmo array. O tamanho do array, ou seja o seu número de elementos pode ser variável, mas é exigido pelo oracle que seja definido o seu número máximo quando da criação do array. A seguinte declaração cria um tipo de dados novo, baseado no tipo Array: CREATE TYPE Lista AS VARRAY(8) OF NUMBER; Este novo tipo de dados chamado Lista, pode agora ser utilizado, como tipo de dados para uma qualquer coluna de uma tabela, um tipo de dados para um atributo de um objecto ou ainda como uma variável em PL/SQL. Pág. 11

12 Nested Tables Uma tabela do tipo nested table, é um conjunto de dados não ordenados, todos pertencentes ao mesmo tipo de dados. Estas tabelas são constituídas por apenas uma coluna, que poderá ser de um tipo de dados standard ou mesmo por um tipo de dados definido pelo utilizador um objecto. Sendo uma tabela de dados, pode ser visualizada de duas formas, mostrando apenas o objecto ou mostrando várias colunas cada uma com seu atributo do objecto presente na tabela. CREATE TYPE Lista AS TABLE OF NUMBER; Este tipo de dados pode ser utilizado nas mesmas situações que o VARRAY, isto é, como tipo de dados de uma coluna de tabela, como atributo de objectos ou como variável. Varrays Vs Nested Tables Existem algumas diferenças entre estes dois tipos de dados dos quais se podem destacar as seguintes: - Os Varrays são estruturas ordenadas e as nested tables não. - As nested tables podem conter um conjunto de elementos virtualmente infinito, podendo crescer ou diminuir consoante as necessidades. Contrariamente os Varrays são estruturas mais rígidas, isto é, temos que definir sempre o número máximo de elementos que estes podem conter. Em contrapartida os Varrays são mais eficientes em termos de ocupação de espaço, pelo que a sua utilização deverá ser aconselhada sempre que se possa definir um número de elementos máximo. - Os Varrays não podem ser pesquisados, ou seja, não podemos aplicar querys neste tipo de dados. No caso das nested tables, podemos aplicar querys sobre os seus elementos o que poderá ser útil em várias situações. De um modo geral, caso a ordenação e o número máximo de elementos não sejam condições muito importantes, devem-se usar nested tables sempre que pretendemos efectuar pesquisas nestes dados e deve-se usar Varrays quanto podemos tratar a colecção de dados como um todo com índices para cada um dos elementos. Pág. 12

13 Uma estrutura de dados no Modelo Objecto-relacional Usando um sistema de gestão de bases de dados, pretende-se gerir a inscrição de alunos nas várias cadeiras ao longo do curso, bem como guardar informação sobre todas as avaliações realizadas pelo alunos em cada uma dessas cadeiras. O problema em questão pode ser representado pelo seguinte esquema. Um aluno é identificado univocamente pelo seu número de alunos, sendo necessário guardar para cada aluno, vários dados como o seu nome, morada, telefone, etc. Não se pretende com este exemplo ser muito exaustivo nos dados necessários para a resolução do problema, mas apenas se pretende mostrar a estrutura das tabelas. Cada aluno poderá estar ou ter estado inscrito a uma ou mais cadeiras, sendo que para cada cadeira o aluno poderá realizar várias avaliações que deverão também ser guardadas. Aluno { Dados do Aluno } Cadeiras Cadeira {Lista de Avaliações} Cadeira {Lista de Avaliações} Cadeira {Lista de Avaliações}... Cadeira n {Lista de Avaliações} Época Frequência val. Época Exame Normal val. Época Exame Recurso val. Época Frequência val. Época Exame Normal val. Época Frequência val. Época Exame Recurso Val. Analisando os dados necessários para a resolução deste problema, chega-se a um conjunto de tabelas organizadas segundo o modelo relacional. Cada tabela poderá estar relacionada com outra(s), usando o conceito de chave estrangeira. Pág. 13

14 Estrutura de Dados no Modelo Relacional: A tabela alunos é uma das tabelas base de toda esta estrutura de dados, fornecendo a sua chave primária (Naluno) a outras tabelas para servir ai de chave estrangeira. Tabela de Alunos: CREATE TABLE Alunos ( NAluno Nome Ano_Ingresso Ano Rua1 Cpostal1 Cidade1 Telefone11 Telefone12 Rua2 Cpostal2 Cidade2 Telefone21 Telefone22 PRIMARY KEY (Numero) ); VARCHAR(100), VARCHAR(100), VARCHAR(50), VARCHAR(50), VARCHAR(12), VARCHAR(12), VARCHAR(100), VARCHAR(50), VARCHAR(50), VARCHAR(12), VARCHAR(12), É necessário que exista informação sobre quais as cadeiras existentes, isto é, quais as cadeiras a que o aluno pode estar inscrito. Para resolver esta situação é criada uma tabela que contém todas as cadeiras existentes. Tabela de Cadeiras Existentes: CREATE TABLE Cadeiras ( Cod_Cadeira Ano Nome Creditos PRIMARY KEY(Codigo) ); A relação Alunos<->Cadeiras é implementada usando uma tabela em que é ligado o Número de Aluno e o código da cadeira como chave primária. Estes valores são chaves estrangeiras das tabelas Alunos e cadeiras, fazendo com que apenas possa Pág. 14

15 existir uma linha desta tabela se o Aluno indicado existir assim como se existir a cadeira indicada. Cadeiras de cada Aluno; CREATE TABLE Aluno_Cadeira ( NAluno NUMBER REFERENCES Alunos, Cod_Cadeira NUMBER REFERENCES Cadeiras, DataInsc DATE, Aprovado PRIMARY KEY (Naluno,Cod_Cadeira) ); Para definir a relação Alunos<->Cadeira<->Avaliações, é usada uma nova tabela cuja chave primária é constituída pelo número do aluno, código da cadeira, ano_lectivo e época de avaliação. As chaves estrangeiras presentes nesta tabela referem-se a dados existentes na tabela anterior, isto é, apenas permite que seja introduzida uma avaliação a um aluno/cadeira que exista na tabela de cadeiras por aluno, ou seja, o aluno está inscrito a essa cadeira. Avaliação por cadeira: CREATE TABLE Cadeira_Avaliacao ( Naluno NUMBER REFERENCES Aluno_Cadeira, Cod_Cadeira NUMBER REFERENCES Aluno_Cadeira, Ano_Lectivo Epoca Desc_Aval VARCHAR(50), Data DATE, Nota PRIMARY KEY (Naluno, Cod_Cadeiram, Ano_Lectivo, Epoca) ); Esta estrutura poderá ser melhorada completando os dados necessários em cada tabela (informação pertinente a guardar). Por outro lado existe informação que está a ser duplicada, como por exemplo as épocas de avaliação e a sua descrição. Deveria existir uma tabela de dados onde fossem guardada essa informação, servindo depois como chave estrangeira para a tabela Cadeira_Avaliação. Não foram contempladas estas alterações pois não se pretende resolver completamente o problema mas sim mostrar a estrutura de dados a implementar e usar esta estrutura como ponto de comparação com o mesmo problema resolvido usando o método objecto-relacional e implementado no Oracle 8 usando nested tables, que é apresentado de seguida. Pág. 15

16 Estrutura de dados no Modelo Objecto - Relacional: Usando uma definição prévia dos tipos de dados a serem usados, permite que se possa definir objectos que usem este tipo de dados, mesmo antes de eles terem sido completamente definidos. Funciona basicamente como a declaração forward do C++. Definição Inicial de Todos os Tipos de dados a serem usados. CREATE TYPE Aluno ; CREATE TYPE Endereco ; CREATE TYPE Telefones ; CREATE TYPE Cadeira_Disponiveis ; CREATE TYPE Cadeiras ; CREATE TYPE Lista_Cadeiras ; CREATE TYPE Avaliacao ; CREATE TYPE Lista_Avaliacoes ; De modo a permitir que cada aluno possa ter definidos até cinco número de telefone diferentes por cada endereço fornecido, é definido o tipo de dados Telefones como um array de 5 elementos, sendo cada elemento um campo de texto de comprimento 12. Definiu-se este tipo de dados utilizando um array, porque o número máximo de telefones a guardar pode ser claramente definido, assim como não será necessário efectuar pesquisas nos dados introduzidos. CREATE TYPE Telefones AS VARRAY(5) OF VARCHAR(12) ; O objecto endereço, permite uma maior simplicidade na posterior definição do objecto Aluno pois este objecto irá conter toda a informação necessária a cada um dos endereços definidos, incluindo uma lista de números de telefone para cada um dos endereços. CREATE TYPE Endereco AS OBJECT ( Rua VARCHAR(100), Cpostal VARCHAR(50), Cidade VARCHAR(50), Tel REF TELEFONES ) ; Pág. 16

17 É criado um objecto Cadeiras_Disponiveis, contendo a informação necessária á identificação de cada cadeira que o aluno pode frequentar e propor-se a avaliação. Estes objectos serão guardados numa tabela a que podemos chamar uma tabela auxiliar, pois irá permitir por exemplo (na aplicação a desenvolver) escolher a cadeira em que cada aluno se pretende e pode matricular. CREATE TYPE Cadeiras_Disponiveis AS OBJECT ( Cod_Cadeira Ano Nome Creditos NUMBER ); Com os dois objectos seguintes, Cadeiras e Lista_cadeiras, pretende-se vir a implementar as relações entre alunos / cadeiras / Avaliações. O Objecto Lista_cadeiras é definido como sendo uma nested table, pelo que cada objecto deste tipo irá conter as cadeiras a que cada aluno se matriculou (relação Alunos- Cadeiras). Do mesmo modo cada Objecto desta lista irá conter no seu interior outra objecto (Lista_Avaliações), também implementado como uma nested table onde estão todas as avaliações a que o alunos se foi submetendo para esse objecto (cadeira). CREATE TYPE Cadeiras AS OBJECT ( Cadeira REF Cadeiras_Disponiveis, Data1Insc DATE, Aprovado Avaliacoes Lista_Avalicaoes ); CREATE TYPE Lista_Cadeiras AS TABLE OF Cadeiras ; O Objecto do tipo Avaliação, irá conter a informação de cada avaliação que o aluno realizou a uma determinada cadeira. Sendo a lista de avaliações a cada cadeira implementada como uma nested table. Pág. 17

18 CREATE TYPE Avaliacao AS OBEJCT ( Ano_Lectivo Epoca Desc_Aval VARCHAR(50), Data DATE, Nota NUMBER ) ; CREATE TYPE Lista_Avaliacoes AS TABLE OF Avalicao ; O Objecto do tipo aluno será neste caso o principal objecto de toda esta estrutura, contendo a informação de cada aluno, salientado que cada endereço é um objecot definido anteriormente. As cadeiras a que o aluno está matriculado também são definidas aqui como sendo um objecto do tipo Lista_cadeiras. Portanto podemos ver o conceito de objecto dentro de objecto. Neste caso dentro de cada elemento da Lista de cadeiras ainda podemos encontrar um novo objecto contendo a lista das avaliações a essa cadeira. Foi também introduzido um método que irá permitir comparar dois alunos, neste caso será implementado utilizando o número de alunos nessa comparação, permitindo então por exemplo ordenar os alunos por ordem numérica. CREATE TYPE Aluno AS OBJECT ( NAluno Nome VARCHAR(100), Ano_Ingresso End_Aulas ENDERECO, End Ferias ENDERECO, Cadeiras_Mat Lista_Cadeiras, ORDER MEMBER FUNCTION Ordena_Alunos (X IN Aluno) RETURN INTEGER, ); Nesta estrutura de dados poderiam ser implementado vários métodos, como por exemplo a pesquisa de cadeiras feitas pelo aluno, cadeiras por fazer, média das cadeiras já feitas, etc. Neste exemplo vou apenas apresentar o método que permite comparar dois alunos usando o seu número como termo de comparação. Pág. 18

19 Definição do método Ordena_Alunos: CREATE OR REPLACE TYPE BODY Aluno AS ORDER MEMBER FUNCTION Ordena_Alunos (X IN Alunos) RETURN INTEGER IS BEGIN RETURN NAluno X.Naluno END; END; Criação das Tabelas de Suporte: Uma vez definido o tipo de dados a usar, é necessário criar as tabelas que irão servir de suporte á informação. A tabela que irá conter as cadeiras (Objectos do tipo Cadeira) a que o aluno se poder inscrever é definida do seguinte modo: CREATE TABLE Tab_Cadeiras OF Cadeiras_Disponiveis ( Cod_Cadeira PRIMARY KEY) ; Do mesmo modo vamos definir a tabela que irá conter os alunos e as relações para cadeiras/avaliações. CREATE TABLE Tab_Alunos OF Alunos ( PRIMARY KEY (Naluno) ) NESTE TABLE Lista_Cadeiras STORE AS Tab_L_Cadeiras ; ALTER TABLE Tab_L_Cadeiras ADD ( SCOPE FOR (Cadeira) IS tab_cadeiras ) NESTED TABLE Lista_Avaliacoes STORE AS Tab_L_Aval ); A tabela de alunos (Tab_Alunos), irá conter tosos os objecto do tipo aluno, sendo que uma das suas colunas é um ponteiro para uma nested table (Tab_L_Cadeiras) que contém as cadeiras a que o aluno está matriculado. Foi feita uma alteração á tabela Tab_L_Cadeiras, de modo a que esta nested table também contenha uma coluna que aponte para outra nested table que contem os dados referentes á avaliação dessa cadeira. Pág. 19

20 Conclusão Podemos verificar que o uso do modelo Objecto - Relacional poderá na grande maioria dos casos facilitar o desenho da estrutura da base de dados, estando as relações entre objectos reais, encapsuladas no interior de cada objecto da base de dados. Neste caso, os dados ficam melhor estruturados que no modelo relacional, pois embora fisicamente as relações estejam feitas usando tabelas diferentes, o utilizador apenas poderá utilizar a tabela principal Alunos que contém toda a informação necessária. A sintaxe da criação de tipos de dados e de tabelas poderá conter algumas falhas, pois não me foi possível ter acesso a um sistema Oracle 8 com a opção de objectos. Esta abordagem da Oracle poderá ser considerada como um grande avanço na área das bases de dados, facilitando o seu desenho e principalmente, facilitando a posterior construção de aplicações, pois muito código poderá ser embebido no interior de cada objecto. Bibliografia?? Apontamentos das Aulas da Cadeira?? An Introduction to Database Systems 6ª Edição C. J. Date Addison-Wesley Publishing Company?? A First Course in Database Systems Jeffrey D. Velman, Jennifer Widom Prentice Hall?? Manuais On-Line do Oracle 8?? Pesquisa na Internet, Pág. 20

Banco de Dados. Arquitetura e Terminologia. Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.

Banco de Dados. Arquitetura e Terminologia. Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo. Banco de Dados Arquitetura e Terminologia Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.com 2015 Modelo de Dados e Esquemas O modelo de Banco de Dados é como um detalhamento

Leia mais

Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de

Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de Capítulo 8: BDs Objecto-Relacional Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de Objectos e Referência

Leia mais

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto

Leia mais

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

Leia mais

Tarefa Orientada 15 Manipulação de dados

Tarefa Orientada 15 Manipulação de dados Tarefa Orientada 15 Manipulação de dados Objectivos: Criação de tabelas teste Comando INSERT INTO Inserção de dados Comando INSERT Actualização de dados Comando UPDATE Eliminação de dados Comando DELETE

Leia mais

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor

Leia mais

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II O seguinte exercício contempla um processo com três estágios. Baseia-se no Inquérito de Satisfação Fase II, sendo, por isso, essencial compreender primeiro o problema antes de começar o tutorial. 1 1.

Leia mais

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

Leia mais

Polimorfismo. Prof. Leonardo Barreto Campos 1

Polimorfismo. Prof. Leonardo Barreto Campos 1 Polimorfismo Prof. Leonardo Barreto Campos 1 Sumário Introdução; Polimorfismo; Polimorfismo Java; Métodos Abstratos Java Classes Abstratas Java Exercício - Java Polimorfismo C++ Classe Abstrata C++; Funções

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

Consistem num conjunto de apontadores para instâncias especificas de cada relação. Mecanismo usado para mais fácil e rapidamente aceder à informação existente numa base de dados. Bases de Dados de elevadas dimensões. Consistem num conjunto de apontadores para instâncias especificas de

Leia mais

Tarefa Orientada 13 Agrupamento e sumário de dados

Tarefa Orientada 13 Agrupamento e sumário de dados Tarefa Orientada 13 Agrupamento e sumário de dados Objectivos: Funções de agregação Agrupamento e sumário de dados Funções de agregação Nesta tarefa orientada iremos formular consultas que sumariam os

Leia mais

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011 BASES DE DADOS I LTSI/2 Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011 A Linguagem SQL As raízes da linguagem SQL remontam a 1974, altura em que a IBM desenvolvia

Leia mais

Tarefa Orientada 10 Obter informação a partir de uma tabela

Tarefa Orientada 10 Obter informação a partir de uma tabela Tarefa Orientada 10 Obter informação a partir de uma tabela Objectivos: Consultar dados de uma tabela Utilizar operadores aritméticos, relacionais, lógicos, de concatenação de cadeias de caracteres, LIKE

Leia mais

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores Trabalhos Práticos Programação II Curso: Engª Electrotécnica - Electrónica e Computadores 1. Objectivos 2. Calendarização 3. Normas 3.1 Relatório 3.2 Avaliação 4. Propostas Na disciplina de Programação

Leia mais

SQL - Criação de Tabelas

SQL - Criação de Tabelas SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 1 / 25 Sumário 1 Introdução 2 Tabelas

Leia mais

Microsoft Access 2010. Para conhecermos o Access, vamos construir uma BD e apresentar os conceitos necessários a cada momento

Microsoft Access 2010. Para conhecermos o Access, vamos construir uma BD e apresentar os conceitos necessários a cada momento Microsoft Access 2010 Para conhecermos o Access, vamos construir uma BD e apresentar os conceitos necessários a cada momento 1 Principais objetos do Access Tabelas Guardam a informação da BD (Base de Dados)

Leia mais

Bases de Dados. Lab 1: Introdução ao ambiente

Bases de Dados. Lab 1: Introdução ao ambiente Departamento de Engenharia Informática 2010/2011 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

Leia mais

MANUAL DO UTILIZADOR

MANUAL DO UTILIZADOR MANUAL DO UTILIZADOR Versão 1.6 PÁGINA DE PESQUISA A página principal do PacWeb permite a realização de um número muito variado de pesquisas, simples, ou pelo contrário extremamente complexas, dependendo

Leia mais

Disciplina: Unidade III: Prof.: E-mail: Período:

Disciplina: Unidade III: Prof.: E-mail: Período: Encontro 08 Disciplina: Sistemas de Banco de Dados Unidade III: Modelagem Lógico de Dados Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM Relembrando... Necessidade de Dados Projeto

Leia mais

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton

Leia mais

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

1. Domínio dos Atributos

1. Domínio dos Atributos Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Domínio dos Atributos Por domínio, ou tipo, pode-se entender como a maneira como determinado atributo (ou campo, se tratando

Leia mais

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:

Leia mais

Computadores e Sistemas de Informação. Bases de Dados Relacionais (linguagem SQL)

Computadores e Sistemas de Informação. Bases de Dados Relacionais (linguagem SQL) Computadores e Sistemas de Informação Bases de Dados Relacionais (linguagem SQL) 2004/2005 Utilidade das Bases de Dados Recolha e processamento de dados que possuem um volume significativo, que são interrelacionados,

Leia mais

Novo Formato de Logins Manual de Consulta

Novo Formato de Logins Manual de Consulta Gestão Integrada de Acessos Novo Formato de Logins Manual de Consulta Gestão Integrada de Acessos Histórico de Alterações Versão Descrição Autor Data 1.0 Versão inicial DSI/PPQ 2014-07-11 Controlo do documento

Leia mais

Tarefa Orientada 14 Subconsultas

Tarefa Orientada 14 Subconsultas Tarefa Orientada 14 Subconsultas Objectivos: Subconsultas não correlacionadas Operadores ALL, SOME e ANY Subconsultas correlacionadas Operador EXISTS Subconsultas incluídas na cláusula FROM de uma consulta

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

Leia mais

Programação III / Estruturas de Dados. Enunciado do Trabalho Prático

Programação III / Estruturas de Dados. Enunciado do Trabalho Prático Programação III / Estruturas de Dados Enunciado do Trabalho Prático 1. Objectivo Pretende-se implementar uma base de dados que sirva para ajudar uma agência de viagens a planear as viagens a realizar pelos

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

Leia mais

Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de

Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de Capítulo 8: BDs Objecto-Relacional Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de Objectos e Referência

Leia mais

Tarefa Orientada 19 Triggers

Tarefa Orientada 19 Triggers Tarefa Orientada 19 Triggers Objectivos: Criar triggers AFTER Criar triggers INSTEAD OF Exemplos de utilização Os triggers são um tipo especial de procedimento que são invocados, ou activados, de forma

Leia mais

NOME SEXO CPF NASCIMENTO SALARIO

NOME SEXO CPF NASCIMENTO SALARIO Tutorial SQL Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2973 Para começar Os Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDr) são o principal mecanismo de suporte ao armazenamento

Leia mais

Guia de utilização. Gestão de Mensagens. Março 2009

Guia de utilização. Gestão de Mensagens. Março 2009 Guia de utilização Gestão de Mensagens Março 2009 Índice Índice... 2 Novo Serviço de Gestão de Mensagens... 3 Criar Mensagens... 4 Layout Criar Mensagens... 5 Processo Criar Mensagens... 7 Gestão das Mensagens...

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

Banco de Dados Objeto Relacional

Banco de Dados Objeto Relacional Banco de Dados Objeto Relacional características Banco de Dados Objeto- Relacional (BDOR) Banco de dados relacional com extensões para manipulação de objetos e outras fatores de banco de dados orientado

Leia mais

SAMUO APP: MANUAL DO ADMINISTRADOR

SAMUO APP: MANUAL DO ADMINISTRADOR as novas tecnologias ao serviço do desenvolvimento de projectos w w w. i m a d i p. c o m CABO VERDE: REALIZAÇÃO DE UMA ACÇÃO- PILOTO PARA A MELHORIA DA GESTÃO NUM GABINETE TÉCNICO SELECCIONADO OFITEC

Leia mais

Aprend.e Sistema integrado de formação e aprendizagem

Aprend.e Sistema integrado de formação e aprendizagem Aprend.e Sistema integrado de formação e aprendizagem Pedro Beça 1, Miguel Oliveira 1 e A. Manuel de Oliveira Duarte 2 1 Escola Aveiro Norte, Universidade de Aveiro 2 Escola Aveiro Norte, Departamento

Leia mais

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA Sistemas Operativos 2003/2004 Trabalho Prático #2 -- Programação em C com ponteiros -- Objectivos Familiarização

Leia mais

Criação de Páginas Web - MS Word 2000

Criação de Páginas Web - MS Word 2000 Gestão Comercial e da Produção Informática I 2003/04 Ficha de Trabalho N.º 9 Criação de Páginas Web - MS Word 2000 1. Criação de uma página Web (HTML): Escreva o seu texto e introduza as imagens pretendidas

Leia mais

Bases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1.

Bases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1. Departamento de Engenharia Informática 2008/2009 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

Leia mais

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

Programação SQL. Manipulação de Dados. DML Data Manipulation Language Programação SQL Manipulação de Dados DML Data Manipulation Language Manipulação de Dados (DML) Os comandos INSERT, UPDATE, DELETE, são normalmente classificados como pertencendo a uma sublinguagem da linguagem

Leia mais

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação Ministério das Finanças Instituto de Informática Departamento de Sistemas de Informação Assiduidade para Calendários Específicos Junho 2010 Versão 6.0-2010 SUMÁRIO 1 OBJECTIVO 4 2 ECRÃ ELIMINADO 4 3 NOVOS

Leia mais

Tarefa Orientada 18 Procedimentos armazenados

Tarefa Orientada 18 Procedimentos armazenados Tarefa Orientada 18 Procedimentos armazenados Objectivos: Criar Procedimentos armazenados Chamar procedimentos armazenados Utilizar parâmetros de entrada e de saída Um procedimento armazenado representa

Leia mais

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis. 3. Tabelas de Hash As tabelas de hash são um tipo de estruturação para o armazenamento de informação, de uma forma extremamente simples, fácil de se implementar e intuitiva de se organizar grandes quantidades

Leia mais

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. 1 Diagrama de Classes Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. Um dos objetivos do diagrama de classes é definir a base para

Leia mais

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 7 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Aprender sobre a modelagem lógica dos dados. Conhecer os

Leia mais

Manual do Gestor da Informação do Sistema

Manual do Gestor da Informação do Sistema Faculdade de Engenharia da Universidade do Porto Licenciatura Informática e Computação Laboratório de Informática Avançada Automatização de Horários Manual do Gestor da Informação do Sistema João Braga

Leia mais

SISTEMA DE INFORMAÇÃO DAS PARTICIPAÇÕES DO ESTADO

SISTEMA DE INFORMAÇÃO DAS PARTICIPAÇÕES DO ESTADO SISTEMA DE INFORMAÇÃO DAS PARTICIPAÇÕES DO ESTADO SIPART (versão Setembro/2004) Manual de Utilização ÍNDICE 1. INTRODUÇÃO...3 2. ACEDER À APLICAÇÃO...4 3. CRIAR NOVO UTILIZADOR...5 4. CARACTERIZAÇÃO GERAL

Leia mais

www.enviarsms.smsvianetportugal.com Descrição de Como Utilizar

www.enviarsms.smsvianetportugal.com Descrição de Como Utilizar www.enviarsms.smsvianetportugal.com Descrição de Como Utilizar Este interface de utilizador, do serviço www.smsvianetportugal.com, permite a ceder à mesma conta de cliente, que através do interface simplesms.smsvianetportugal.

Leia mais

Instituto Politécnico de Beja Escola Superior de Tecnologia e Gestão. GesStock. Engenharia Informática. Base de Dados II

Instituto Politécnico de Beja Escola Superior de Tecnologia e Gestão. GesStock. Engenharia Informática. Base de Dados II Instituto Politécnico de Beja Escola Superior de Tecnologia e Gestão GesStock Aplicação para Gestão de Stocks Engenharia Informática Base de Dados II Docente: Artur Lança Isabel Sofia Brito Nuno Gonçalo

Leia mais

Comunicação documentos de transporte AT via Webservice Singest Sistema Integrado de Gestão. 22-05-2013 Cambragest Serviços de Gestão e Software

Comunicação documentos de transporte AT via Webservice Singest Sistema Integrado de Gestão. 22-05-2013 Cambragest Serviços de Gestão e Software Comunicação documentos de transporte AT via Webservice 22-05-2013 Cambragest Serviços de Gestão e Software I. Índice I. Índice... 1 II. Introdução... 2 III. Configuração de documentos de transporte...

Leia mais

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO DOMINE A 110% ACCESS 2010 A VISTA BACKSTAGE Assim que é activado o Access, é visualizado o ecrã principal de acesso na nova vista Backstage. Após aceder ao Access 2010, no canto superior esquerdo do Friso,

Leia mais

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES BANCO DE DADOS GERENCIAL 1 AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES Integridade de domínio A integridade de domínio é a validade de entradas para uma coluna específica. É possível aplicar a integridade

Leia mais

MANUAL DE INSTRUÇÕES

MANUAL DE INSTRUÇÕES DIRECÇÃO GERAL DOS RECURSOS HUMANOS DA EDUCAÇÃO DIRECÇÃO DE SERVIÇOS DE SISTEMAS DE INFORMAÇÃO MANUAL DE INSTRUÇÕES (APENAS PARA ESCOLAS) MANIFESTAÇÃO DE NECESSIDADES PARA COLOCAÇÕES CÍCLICAS ANO ESCOLAR

Leia mais

Guia para a declaração de despesas no Programa SUDOE

Guia para a declaração de despesas no Programa SUDOE Guia para a declaração de despesas no Programa SUDOE CAPÍTULO 1: INTRODUÇÃO... 2 CAPÍTULO 2: ACESSO AO MÓDULO DE GESTÃO DE DESPESAS PAGAS... 3 CAPÍTULO 3: GESTÃO DAS DESPESAS PAGAS... 4 3.1 Incorporação

Leia mais

Aplicações de Escritório Electrónico

Aplicações de Escritório Electrónico Universidade de Aveiro Escola Superior de Tecnologia e Gestão de Águeda Curso de Especialização Tecnológica em Práticas Administrativas e Tradução Aplicações de Escritório Electrónico Folha de trabalho

Leia mais

Acronis Servidor de Licença. Manual do Utilizador

Acronis Servidor de Licença. Manual do Utilizador Acronis Servidor de Licença Manual do Utilizador ÍNDICE 1. INTRODUÇÃO... 3 1.1 Descrição geral... 3 1.2 Política de licenças... 3 2. SISTEMAS OPERATIVOS SUPORTADOS... 4 3. INSTALAR O SERVIDOR DE LICENÇA

Leia mais

Guia de Estudo Folha de Cálculo Microsoft Excel

Guia de Estudo Folha de Cálculo Microsoft Excel Tecnologias da Informação e Comunicação Guia de Estudo Folha de Cálculo Microsoft Excel Estrutura geral de uma folha de cálculo: colunas, linhas, células, endereços Uma folha de cálculo electrónica ( electronic

Leia mais

Chaves. Chaves. O modelo relacional implementa dois conhecidos conceitos de chaves, como veremos a seguir:

Chaves. Chaves. O modelo relacional implementa dois conhecidos conceitos de chaves, como veremos a seguir: Chaves 1 Chaves CONCEITO DE CHAVE: determina o conceito de item de busca, ou seja, um dado que será empregado nas consultas à base de dados. É um conceito lógico da aplicação (chave primária e chave estrangeira).

Leia mais

Modelagemde Software Orientadaa Objetos com UML

Modelagemde Software Orientadaa Objetos com UML Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012 Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012 Mestrado Integrado em Engenharia Electrotécnica e de Computadores 1º ano 2º semestre Trabalho Final Reservas de viagens

Leia mais

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL PROF. MS C. RICARDO ANTONELLO WWW.ANTONELLO.COM.B R PORQUE SER RELACIONAL? Hoje, há um claro predomínio dos SGBD relacionais, principalmente

Leia mais

MICROSOFT POWERPOINT

MICROSOFT POWERPOINT MICROSOFT POWERPOINT CRIAÇÃO DE APRESENTAÇÕES. O QUE É O POWERPOINT? O Microsoft PowerPoint é uma aplicação que permite a criação de slides de ecrã, com cores, imagens, e objectos de outras aplicações,

Leia mais

Síntese das discussões do fórum Livro-APF: Julho/2010

Síntese das discussões do fórum Livro-APF: Julho/2010 Síntese das discussões do fórum Livro-APF: Julho/2010 Assunto: Estimativa de Aumento de Produtividade Data: 01/07/2010 Link: http://br.groups.yahoo.com/group/livro-apf/message/2577 Dúvida: Existe alguma

Leia mais

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS Planificação Anual da Disciplina de TIC Módulos 1,2,3-10.ºD CURSO PROFISSIONAL DE TÉCNICO DE APOIO À GESTÃO DESPORTIVA Ano Letivo 2015-2016 Manual adotado:

Leia mais

Engenharia Informática

Engenharia Informática Escola Superior de Ciência e Tecnologia Engenharia Informática Análise de Sistemas Informáticos 3º ano Exame 12 de Julho de 2006 Docentes: José Correia e João Paulo Rodrigues Duração: 90 m; Tolerância:

Leia mais

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming Curso de PHP FATEC - Jundiaí A programação orientada a objetos (object-oriented oriented programming OOP) é um conjunto de técnicas t para organizar o código c em torno de entidades ou objetos representados

Leia mais

Capítulo Tabelas e Gráficos

Capítulo Tabelas e Gráficos Capítulo O menu de tabelas e gráficos torna possível criar tabelas numéricas de funções guardadas na memória. Poderá também utilizar funções múltiplas para criar tabelas. Como utiliza a mesma lista de

Leia mais

Engenharia de Software Sistemas Distribuídos

Engenharia de Software Sistemas Distribuídos Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 FEARSe Requisitos para a 1 a entrega 18 de Março de 2010 1 Introdução O projecto conjunto das disciplinas de Engenharia de Software

Leia mais

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Tarefa Orientada 12 Junção Externa, Auto-Junção e União Tarefa Orientada 12 Junção Externa, Auto-Junção e União Objectivos: Junção externa (Outer JOIN) Junção externa à esquerda (LEFT Outer JOIN) Junção externa à direita (RIGHT Outer JOIN) Junção externa completa

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

Leia mais

Utilização do SOLVER do EXCEL

Utilização do SOLVER do EXCEL Utilização do SOLVER do EXCEL 1 Utilização do SOLVER do EXCEL José Fernando Oliveira DEEC FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO MAIO 1998 Para ilustrar a utilização do Solver na resolução de

Leia mais

Técnicas e Linguagens para Banco de Dados I

Técnicas e Linguagens para Banco de Dados I Técnicas e Linguagens para Banco de Dados I Prof. Eduardo Ribeiro www.eduardo.trisolution.com.br eduardo@ trisolution.com.br Introdução Banco de Dados Dados x Informações Dados = É um elemento que mantém

Leia mais

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES [Observação: O template a seguir é utilizado como roteiro para projeto de sistemas orientado

Leia mais

Disciplina de Banco de Dados Parte V

Disciplina de Banco de Dados Parte V Disciplina de Banco de Dados Parte V Prof. Elisa Maria Pivetta CAFW - UFSM Modelo de Dado Relacional O Modelo Relacional O Modelo ER é independente do SGDB portanto, deve ser o primeiro modelo gerado após

Leia mais

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/10 GereComSaber Ana Duarte, André Guedes, Eduardo

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Índice. Como aceder ao serviço de Certificação PME? Como efectuar uma operação de renovação da certificação?

Índice. Como aceder ao serviço de Certificação PME? Como efectuar uma operação de renovação da certificação? Índice Como aceder ao serviço de Certificação PME? Como efectuar uma operação de renovação da certificação? Como efectuar uma operação de confirmação de estimativas? Como aceder ao Serviço de Certificação

Leia mais

TUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo

TUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo TUTORIAL DO ACCESS PASSO A PASSO I. Criar um Novo Banco de Dados Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo 3. Clicar em Banco de Dados em Branco 4. Escrever um nome na caixa de diálogo

Leia mais

EXERÍCIOS DE MODELAGEM DE BANCO DE DADOS

EXERÍCIOS DE MODELAGEM DE BANCO DE DADOS EXERÍCIOS DE MODELAGEM DE BANCO DE DADOS Exercício 1 Construa o modelo Entidades-Relacionamentos a partir da seguinte descrição do sistema: Uma empresa de venda de automóveis retende implementar um sistema

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

Manual do Ambiente Moodle para Professores

Manual do Ambiente Moodle para Professores UNIVERSIDADE FEDERAL DA FRONTEIRA SUL Manual do Ambiente Moodle para Professores Tarefas Versão 1.0b Setembro/2011 Direitos Autorais: Essa apostila está licenciada sob uma Licença Creative Commons 3.0

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

Gestão dos Níveis de Serviço

Gestão dos Níveis de Serviço A Gestão dos Níveis de Serviço (SLM) Os sistemas e tecnologias de informação e comunicação têm nas empresas um papel cada vez mais importante evoluindo, hoje em dia, para níveis mais elevados de funcionamento

Leia mais

WebSphere_Integration_Developer_D_Jan06 Script

WebSphere_Integration_Developer_D_Jan06 Script WebSphere_Integration_Developer_D_Jan06 Script 1a Nesta demonstração, Will Dunlop, um programador de integração da JK, utiliza o IBM, [ IBM], ou WID para construir um novo serviço orientado para os processos

Leia mais

DEIDepartamento. Programação III Engenharia Informática e Comunicações. Engenharia

DEIDepartamento. Programação III Engenharia Informática e Comunicações. Engenharia Engenharia DEIDepartamento Informática Morro do Lena, Alto Vieiro Apart. 4163 2401 951 Leiria Tel.: +351 244 820 300 Fax.: +351 244 820 310 E-mail: estg@estg.iplei.pt http://www.estg.iplei.pt Programação

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

24 O uso dos manuais de Matemática pelos alunos de 9.º ano

24 O uso dos manuais de Matemática pelos alunos de 9.º ano 24 O uso dos manuais de Matemática pelos alunos de 9.º ano Mariana Tavares Colégio Camões, Rio Tinto João Pedro da Ponte Departamento de Educação e Centro de Investigação em Educação Faculdade de Ciências

Leia mais