Neste post falarei sobre Namespaces, um conceito simples mas importante para dominar a nomenclatura de objetos.
Namespace é um espaço imaginário composto por um ou mais tipos de objetos. Ele pode pertencer ao banco de dados como um todo, a um schema ou até mesmo a um tipo de objeto do schema. Ele é gerenciado automaticamente pelo SGDB, não pode ser criado, alterado ou eliminado. Sua função é restringir o nome dos objetos no banco de dados.
Segue abaixo uma figura extraída de um livro de Steve O'Hearn que apresenta como são divididos os namespaces.
Os Index e Constraints possuem um namespace próprio dentro de cada schema, já Tables, Views, Sequences, Private Synonyms e User-Defined Types compartilham o mesmo namespace em cada schema. Com isto pode-se dizer que é possível ter um table abc, com um index abc e uma constraint abc no schema_1 e outra table abc, com index abc e constraint abc no schema_2, porém em nenhum destes schemas seria possível criar uma view abc pois já possuem um table abc. Users, Roles e Public Synonyms pertencem a um namespace único para todo Database, ou seja não é possível ter uma role xyz se já houver um user xyz.
Nenhum comentário:
Postar um comentário