Proyecto Final Documentacion Base de Datos
Proyecto Final Documentacion Base de Datos
Proyecto Final Documentacion Base de Datos
1. Script de una base da datos, puede ser creada por ustedes mismos bajo el análisis que hayan
hecho del modelo de negocios de una empresa u organización.
2. Crear procedimientos almacenados para la bd. (por lo menos 4) y documentarlos, es decir,
añadir una descripción de cuál es su funcionalidad.
3. Crear triggers que aseguren la consistencia de los datos (por lo menos 4) y documentarlos,
es decir, añadir una descripción de cuál es su funcionalidad. Por ejemplo:
a. Acciones que garanticen la no duplicidad de un dato x, como sería el DNI, RUC u otro
atributo único.
b. Reglas del modelo de negocio, por ejemplo, si están haciendo una base de datos de
asistencia, se registra la hora de la asistencia, por defecto el trigger debería calcular
los minutos de tardanza o calcular cuánto es el descuento.
c. Acciones que garanticen la consistencia en otras tablas o en la misma
i. En otras tablas: por ejemplo, si se realiza una compra de un producto, se
actualiza el stock de la tabla producto.
ii. En la misma tabla: si ingreso mi fecha de nacimiento, el campo edad debe
ser calculado automáticamente.
4. Crear por lo menos 05 usuarios con diferentes permisos para la base de datos, uno por lo
menos debe ser el db_owner (dueño de la base de datos) Crear otros usuarios que solo
puedan leer, otros solo escribir, y otros adicionales. Documentar el nombre el usuario,
contraseña, y los roles asignados.
5. Entregar en un backup la base de datos.
6. Incluir un diccionario de datos
Diccionario de datos de una base de datos en Sql server
Un diccionario de datos es un conjunto de metadatos que contiene las características lógicas
y puntuales de los datos que se van a utilizar en el sistema que se programa, incluyendo
nombre, descripción, alias, contenido y organización.
select
d.object_id,
a.name [table], -- identificara la Tabla
b.name [column], -- identificara la columna
c.name [type], -- identificara el Tipo
CASE-- recibe el tipo de columna
--cuando c es numerico o c es decimal o c es Float entonces se precisa
el numero
WHEN c.name = 'numeric' OR c.name = 'decimal' OR c.name = 'float'
THEN b.precision
ELSE null
END [Precision],
-- recibe maximo tamaño de b
b.max_length,
CASE -- recibe si la columna acepta nulos
WHEN b.is_nullable = 0 THEN 'NO'
ELSE 'SI'
END [Permite Nulls],
CASE -- recibe si la columna es identity (autoincrementable)
WHEN b.is_identity = 0 THEN 'NO'
ELSE 'SI'
END [Es Autonumerico],
ep.value [Descripcion],-- recibe la descripcion de la columna(si la hay)
f.ForeignKey, -- recibe si es llave foranea
f.ReferenceTableName, -- recibe la referencia de la tabla
f.ReferenceColumnName -- recibe la referencia de la columna
from sys.tables a
-- // Seleciona y muestra toda la informacion \\ --
inner join sys.columns b on a.object_id= b.object_id
inner join sys.systypes c on b.system_type_id= c.xtype
inner join sys.objects d on a.object_id= d.object_id
LEFT JOIN sys.extended_properties ep ON d.object_id = ep.major_id AND
b.column_Id = ep.minor_id
LEFT JOIN (SELECT
f.name AS ForeignKey,
OBJECT_NAME(f.parent_object_id) AS TableName,
COL_NAME(fc.parent_object_id,fc.parent_column_id)
AS ColumnName,
OBJECT_NAME (f.referenced_object_id) AS
ReferenceTableName,
COL_NAME(fc.referenced_object_id,fc.referenced_column_id) AS
ReferenceColumnName
FROM sys.foreign_keys AS f
INNER JOIN sys.foreign_key_columns AS fc ON
f.OBJECT_ID = fc.constraint_object_id) f ON f.TableName =a.name AND
f.ColumnName =b.name
WHERE a.name <> 'sysdiagrams'
ORDER BY a.name,b.column_Id