0 évaluation0% ont trouvé ce document utile (0 vote)
26 vues16 pages
Aqui estão três possíveis relações para uma base de dados de uma escola com exemplos de violações de restrições de integridade:
1. Relação Alunos(matricula: integer, nome: string, dataNascimento: date, turma: string)
Violação de integridade de domínio: dataNascimento = "abc" (deve ser uma data válida)
Violação de chave primária: existem dois alunos com a mesma matrícula
2. Relação Professores(cpf: integer, nome: string, disciplina: string)
Violação de inte
Aqui estão três possíveis relações para uma base de dados de uma escola com exemplos de violações de restrições de integridade:
1. Relação Alunos(matricula: integer, nome: string, dataNascimento: date, turma: string)
Violação de integridade de domínio: dataNascimento = "abc" (deve ser uma data válida)
Violação de chave primária: existem dois alunos com a mesma matrícula
2. Relação Professores(cpf: integer, nome: string, disciplina: string)
Violação de inte
Aqui estão três possíveis relações para uma base de dados de uma escola com exemplos de violações de restrições de integridade:
1. Relação Alunos(matricula: integer, nome: string, dataNascimento: date, turma: string)
Violação de integridade de domínio: dataNascimento = "abc" (deve ser uma data válida)
Violação de chave primária: existem dois alunos com a mesma matrícula
2. Relação Professores(cpf: integer, nome: string, disciplina: string)
Violação de inte
• A noção de “modelo de dados” é um dos mais fundamentais no estudo de sistemas de banco de dados. • O que é um modelo de dados? • Um modelo de dados é uma notação para descrever dados ou informações. A descrição geralmente consiste em três partes: 1. Estrutura dos dados. 2. Operações nos dados. 3. Restrições nos dados. Modelos de dados importantes • Hoje, os dois modelos de dados de importância proeminente para sistemas de banco de dados são: 1. O modelo relacional, incluindo extensões relacional de objeto. 2. O modelo de dados semiestruturados, incluindo XML e padrões relacionados. • O primeiro, presente em todos os sistemas comerciais de gerenciamento de banco de dados. O modelo semi-estruturado, do qual o XML é a manifestação principal, é um recurso adicional da maioria dos SGBDs relacionais, e também aparece em vários outros contextos. • O modelo relacional é baseado em tabelas, cujo essa relação, ou tabela, descreve filmes: o título, o ano em que foram criados, a duração em minutos e o gênero do filme. Nós mostramos três filmes em particular, mas você deve imaginar que há muito mais linhas nesta tabela - uma linha para cada filme já feito, talvez. ….cont • os cabeçalhos das colunas são os nomes dos campos, e cadadas linhas representam os valores de uma estrutura na matriz. No entanto, deve-se enfatizar que essa implementação física é apenas uma maneira possível de a tabela ser implementada em estruturas de dados físicas. O modelo semi-estruturado • Dados semi-estruturados assemelham-se a árvores ou gráficos, em vez de tabelas ou matrizes. A principal manifestação deste ponto de vista hoje é XML, uma maneira de representar dados por elementos marcados aninhados hierarquicamente. As tags, semelhantes às usadas em HTML, definem o papel desempenhado por diferentes partes de dados, da mesma forma que os cabeçalhos das colunas fazem no modelo relacional. …cont • <Movies> <Movie title="Gone With the Wind"> <Year>1939</Year> • As restrições na estrutura de <Length>231</Length> <Genre>drama</Genre> </Movie> <Movie title="Star Wars"> dados nesse modelo geralmente <Year>1977</Year> <Length>124</Length> envolvem o tipo de dados de <Genre>sciFi</Genre> </Movie> <Movie title="Wayne’s World"> <Year>1992</Year> valores associados a uma tag. <Length>95</Length> <Genre> comedy</Genre> </Movie> </Movies> Por exemplo, os valores associados aos inteiros de tag <Length> ou podem ser strings de caracteres arbitrários? Outras restrições determinam quais tags podem aparecer aninhadas em quais outras tags. Outros Modelos • Existem muitos outros modelos que estão associados aos DBMSs. Uma tendência moderna é adicionar recursos orientados a objetos ao modelo relacional. Lá são dois efeitos da orientação a objetos nas relações: • 1. Os valores podem ter estrutura, em vez de serem tipos elementares, como inteiro ou strings. • 2. Relações podem ter métodos associados …..Cont • Existem até mesmo modelos de bancos de dados do tipo puramente orientado a objetos. Nesses, a relação não é mais o principal conceito de estruturação de dados, mas se torna apenas uma opção entre muitas estruturas. • Existem vários outros modelos que foram usados em alguns dos primeiros DBMSs, mas isso agora caiu em desuso. O modelo hierárquico era, como semi-estruturado dados, um modelo orientado a árvore. Sua desvantagem era que, ao contrário dos mais modernos modelos, ele realmente operou no nível físico, o que tornou impossível para programadores para escrever código em um nível convenientemente alto. Comparação de abordagens de modelagem • Mesmo a partir do nosso breve exemplo, parece que os modelos semi-estruturados têm mais flexibilidade do que relações. Essa diferença se torna ainda mais aparente quando discutimos, como iremos, como estruturas gráficas completas são incorporadas em árvores, modelos semi-estruturados. • Como os bancos de dados são grandes, a eficiência do acesso a dados e a eficiência de modificações nesses dados são de grande importância. Também é muito importante a facilidade de uso - a produtividade dos programadores que usam os dados. Surpreendentemente, ambos objetivos podem ser alcançados com um modelo, particularmente o modelo relacional, que: • 1. Fornece uma abordagem simples e limitada para estruturar dados, mas é razoavelmente versátil, então qualquer coisa pode ser modelada. • 2. Fornece uma coleção limitada, mas útil, de operações em dados. • Juntas, essas limitações se transformam em recursos. Eles nos permitem implementar linguagens, como SQL, que permitem ao programador expressar seus desejos em um nível muito alto. Noções básicas do modelo relacional • O modelo relacional nos dá uma maneira única de representar dados: com exemplo de uma relação, que chamaremos de filmes. Cada uma das linhas representa um filme e as colunas representam uma propriedade de filmes. Nesta secção, introduziremos a terminologia mais importante em relação às relações, e ilustrá-los com a relação de filmes.o Tabela de relação de Filmes um modelo bidimensional tabela chamada uma relação. …. cont • Atributos aparecem nos topos das colunas. Geralmente, um atributo descreve o significado das entradas na coluna abaixo. Por exemplo, a coluna com o atributo len g th contém o comprimento, em minutos, de cada filme. • O nome de uma relação e o conjunto de atributos para uma relação é chamado de esquema para essa relação. Mostramos o esquema para a relação com a relação nome seguido por uma lista entre parênteses de seus atributos. Assim, o esquema para relação Filmes: M o v ie s (title , y e a r, le n g th , genre). • Tuplas • Considera se as linhas de uma relação, além da linha de cabeçalho que contém o atributo nomes, são chamados de tuplas. Uma tupla tem um componente para cada atributo de a relação. …cont • Domínios • O modelo relacional requer que cada componente de cada tupla seja atômico; isto é, deve ser de algum tipo elementar, como integer ou string. Não é permitido para um valor ser uma estrutura de registro, conjunto, lista, matriz ou qualquer outro tipo que razoavelmente pode ter seus valores divididos em componentes menores. Supõe-se ainda que associado a cada atributo de uma relação é um domínio, isto é, um tipo elementar particular. • É possível incluir o domínio, ou tipo de dados, para cada atributo em um esquema de relação. Faremos isso anexando dois pontos e um tipo depois atributos. Por exemplo, poderíamos representar o esquema para a relação Filmes Como: • Movies(title:string, year:integer, length:integer, genre:string) …cont • Integridade de domínio • Os valores de um atributo devem pertencer ao domínio do atributo. • Integridade da chave • Não podem existir dois tuplas de uma relação com valores iguais na chave primária. • Integridade de entidade • Os valores da chave primária não podem ser nulos. • Integridade referencial • Uma tupla que referencia outra relação tem de referenciar uma tupla existente nessa outra relação (chave externa). restrição de integridade • Uma restrição de integridade é uma regra de consistência de dados que é garantida pelo próprio SGBD. • Precisa ser testada quando um registro é incluído, alterado ou excluído do BD. • Há muitas restrições de integridade que não se encaixam nas categorias básicas. • Essas restrições são chamadas de restrições semânticas (ou regras de negócio). • Exemplos de restrições semânticas: • Um empregado do departamento “Financeiro” não pode ter categoria funcional “Engenheiro”. • Um empregado não pode ter um salário maior que seu superior imediato. • Também chamadas de regras do negócio. • Restrições de Integridade Básicas • Restrições de Vazio e Restrições de Domínio são garantidas pelo SGBD. • Restrições de Chave primária e de integridade referencial são garantidas pelo programador. • Restrições de Vazio Restrições de valor vazio • O cliente 548 não tem nome. • Esta tupla se refere a um cliente anônimo, que não tem muito sentido no BD. • Este pode ser um caso caso em que se deseja proibir valores vazios, restringindo domínios do atributo nome para not Null. • Um valor de campo pode assumir o valor vazio (“null” em inglês) • Colunas nas quais não são admitidos valores vazios -> chamados de colunas obrigatórias. • Colunas nas quais podem aparecer valores vazios -> chamadas de colunas opcionais. • Abordagem relacional • Todas as colunas que compõe a chave primária devem ser obrigatórias. • Demais chaves podem conter colunas opcionais. • Regra “Nulo’ • Permite ou não, que um atributo de uma tabela tenha valor nulo (ausência de valor). Aula Pratica 2 • Indique três relações que achas que teria numa base de dados de uma escola. Fatores a ter em conta: • Os atributos para cada relação • O domínio dos atributos de cada relação • As tuplas de cada relação • De exemplos para cada relação de violação de restrições de integridade