Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CLERISTON DO C. M. NORDER
Londrina
2010
4
CLERISTON DO C. M. NORDER
Londrina
2010
5
SUMÁRIO
DEFINIÇÕES BÁSICAS:
MRN pode ser definido como um modelo de dados no qual:
Os conjuntos de dados são representados por TABELAS DE VALORES;
Cada tabela é denominada RELAÇÃO;
Cada tabela é organizada em linhas e colunas;
O número de colunas é denominado GRAU DA RELAÇÃO;
Cada linha ( registro ) é denominada TUPLA;
O conjunto de valores do qual são retirados os elementos das células de uma coluna
é denominada DOMÍNIO.
PROPRIEDADES DO MRN
Cada célula só pode conter, no máximo, um único valor ( podendo ser vazia );
do ponto de vista do usuário, a ordem das linhas é irrelevante;
Não há duas linhas iguais;
Cada coluna tem um nome;
Duas colunas distintas devem Ter nomes diferentes;
Usando-se os nomes para referência às colunas, a ordem destas é é irrevelante;
Cada relação recebe um nome, distinto do nome de qualquer outra relação;
Os valores de uma coluna são retirados todos um mesmo conjunto, denominado
domínio;
Duas ou mais colunas distintas podem ser definidas sobre o mesmo domínio.
R ( C1, C2, . . . , Cn )
ITENS DE BUSCA:
- Uma relação pode Ter vários itens de busca;
- Um item de busca pode ser composto ( englobar várias colunas concatenadas
numa ordem especificada pelo projetista ).
CHAVES
a- D é um item de busca;
b- D não é vazio para nenhuma linha de R;
c- Dado um valor de D, existe apenas uma linha de R com esse valor em D.
7
CHAVE:
Item de busca, acrescido da restrição de integridade de identidade.
ITEM DE BUSCA:
Produz uma organização interna especial dos arquivos, de forma a se obter maior
eficiência na busca segundo valores ou condições sobre valores dessas colunas.
LIGAÇÕES
LINGUAGENS DE MANIPULAÇÃO
ALGEBRA RELACIONAL
As operações com os dados são expressas por meio de expressões algébricas cujos
operandos são relações.
CÁLCULO RELACIONAL
Definem - se às relações usando - se predicados da lógica, na mesma linha das
definições usuais de conjuntos.
ÁLGEBRA RELACIONAL
União
Diferença
Seleção e projeção são chamadas operações UNÁRIAS, uma vez que operam em
uma relação.
Produto cartesiano, união e diferença são chamadas operações BINÁRIAS, uma vez
que operam em pares de relações.
Intersecção
Junção theta
Junção natural
Divisão
SELEÇÃO
Seleciona tuplas que satisfazem um dado predicado.
PROJEÇÃO
As tuplas em duplicata que seriam criadas, por não serem considerados os outros
domínios, são eliminadas.
PRODUTO CARTESIANO
UNIÃO
O resultado T é uma relação que contém todas as tuplas de R1 e R2, sem repetição
(isto é, todas as tuplas que aparecem em uma ou nas duas relações)
Para uma operação R U S ser legal, é necessário que duas condições sejam
asseguradas:
- As relações R e S devem ser do mesmo grau, isto é, devem possuir o mesmo
número de atributos.
- Os domínios de cada atributo devem ser os mesmos.
DIFERENÇA
INTERSECÇÃO
JUNÇÃO
DIVISÃO
O resultado T é uma relação que contém apenas as tuplas da relação dividendo que
contenham todo o domínio da coluna indicada da relação divisor. A relação
resultante conterá apenas as colunas complementares à coluna dividendo.
ESQUEMA DA OPERAÇÃO:
NORMALIZAÇÃO DE RELAÇÕES
ANOMALIAS DE ATUALIZAÇÃO
NA INCLUSÃO:
Repetição da informação.
NA ALTERAÇÃO:
Alteração de várias tuplas.
NA EXCLUSÃO:
Perda de informações.
Uma relação está na primeira forma normal (1FN) se não possuir grupos de
repetição ( ou seja, se todos atributos na relação estiveram baseados em domínios
simples ).
DEPENDÊNCIA FUNCIONAL
NOTAÇÃO:
F:A-B
B é funcionalmente dependente de A, ou
A determina funcionalmente B
GENERALIZAÇÃO:
F : A1, . . . , Na - B
Um conjunto de domínios A1, . . . , Na determina funcionalmente B
SOLUÇÃO: Desmembrar a relação de modo que não haja atributo não chave
dependente de apenas parte da chave.
DEPENDÊNCIA TRANSITIVA
A - B, B - C e B- A
a) Estiver na 2FN, e,
b) Nenhum atributo não - principal está com dependência transitiva em relação a
alguma chave ( ou seja , se todos atributos não-chaves são independentes entre
si )
SOLUÇÃO:
2 PADRÃO SQL
O SQL foi revisto em 1992 e a esta versão foi dado o nome de SQL-92. Foi
revisto novamente em 1999 e 2003 para se tornar SQL:1999 (SQL3) e SQL:2003,
respectivamente. O SQL:1999 usa expressões regulares de emparelhamento,
queries recursivas e gatilhos (triggers). Também foi feita uma adição controversa de
tipos não-escalados e algumas características de orientação a objeto. O SQL:2003
introduz características relacionadas ao XML, seqüências padronizadas e colunas
com valores de auto-generalização (inclusive colunas-identidade).
Tal como dito anteriormente, o SQL, embora padronizado pela ANSI e ISO,
possui muitas variações e extensões produzidos pelos diferentes fabricantes de
sistemas gerenciadores de bases de dados. Tipicamente a linguagem pode ser
migrada de plataforma para plataforma sem mudanças estruturais principais.
Palavras-chaves em SQL
14
* INSERT é usada para inserir um registro (formalmente uma tupla) a uma tabela
existente.
* CREATE cria um objeto (uma Tabela, por exemplo) dentro da base de dados.
* ALTER TABLE
* CREATE INDEX
* ALTER INDEX
* DROP INDEX
* CREATE VIEW
* DROP VIEW
dados.
* ALTER PASSWORD
* CREATE SYNONYM
* BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL) pode ser
usado para marcar o começo de uma transação de banco de dados que pode ser
completada ou não.
* ROLLBACK faz com que as mudanças nos dados existentes desde que o último
COMMIT ou ROLLBACK sejam descartadas.
WHERE – Utilizada para especificar as condições que devem reunir os registros que
serão selecionados.
HAVING – Utilizada para expressar a condição que deve satisfazer cada grupo.
16
<> – Diferente de
= – Igual a
* Apache Derby
* Caché
* DB2
* Firebird
* HSQLDB , banco de dados implementado em Java
* Informix
* Ingres
* InterBase
* Microsoft SQL Server
* MySQL
* Oracle
* PointBase PointBase, banco de dados relacional implementado em Java
* PostgreSQL
* SQLite
* LiteBase Mobile Dedicado a plataformas móveis tais como: Palm OS, Pocket PC,
WinCE, Symbian
* Sybase Adaptive Server Enterprise
* Sybase Advantage Database Server
* Teradata Primeiro RDBMS com arquitetura paralela do mercado
18
3 PROCESSAMENTO DE TRANSAÇÕES
* A escrita do banco de dados que precisa ocorrer como uma unidade deve ser
colocada entre os métodos BeginTrans e CommitTrans
* O método RollBack irá cancelar as modificações feitas desde que BeginTrans foi
ativado.
dim db as database
DBEngine.Workspaces(0).BeginTrans
conta.edit
conta("saldo")=conta("saldo")-valor
conta.update
'se a energia acabar neste ponto o valor não seria subtraido do saldo da conta
corrente
poupanca.addnew
poupanca("saldo")=poupanca("saldo")+valor
poupanca.update
Else
End If
Podemos aninhar no máximo até cinco transações sendo que cada nível precisa ser
encerrado antes que as transações de nível mais alto sejam executadas.
Se você usar os métodos addNew, Edit ou Update dentro de um loop que editará
mais que um registro , a versão 3.0 de Jet Engine, pode tratar o loop como uma
transação implícita. Isto significa que as atualizações não serão necessariamente
efetuadas nos arquivos. Naturalmente isto afetará o tratamento de erros , o bloqueio
de páginas e visibilidade das alterações para outros usuários. Para garantir que as
alterações sejam imediatamente escritas nos arquivos encerre cada bloco
Edit/Update dentro de uma transação explicita. Vejamos um exemplo abaixo:
While NOT RS.EOF
WS.BeginTrans
RS.Edit
RS.Update
WS.CommitTrans
RS.Movenext
WEND
Quando você inicia uma transação, o Jet Engine grava esta operação em um
arquivo no diretório definido pela variável TEMP de seu ambiente na estação. Se o
arquivo de log da transação esgota o espaço disponível no diretório TEMP, o Jet
dispara o erro 2004.
21
4 CONTROLE DE CONCORRÊNCIA
- Isolamento: a execução de uma transação não pode ser afetada por outras sendo
executadas concorrentemente, para isso suas atualizações não devem ser
efetivadas até que se tenha uma confirmação (COMMIT).
● READ COMMITED: Bloqueios são usados durante o acesso ao dado. Com isso,
os valores dos dados acessados podem ser modificados por outras transações, e
podem surgir "tuplas fantasma".
Protocolos de Bloqueio
• Bloqueio exclusivo (X): permite leitura e escrita e é obtido se não houver nenhum
outro bloqueio
REFERÊNCIAS
Wikipédia - http://pt.wikipedia.org/wiki/Brasil