You are on page 1of 18

UNJBG /ITEL /Carrera Técnica de Analista - Programador

CURSO: Base de Datos I – Periodo 2010- 3

PRACTICA 01: Modelamiento y creación de bases de datos con


el ERWIN 4.1 y MS – SQL Server 2000
Objetivo: Aprender a:
ª Identificar entidades, atributos, interrelaciones y claves.
ª Construir los modelos conceptual, lógico y físico de una base de datos con el ERWIN 4.1.
ª Creación de una base de datos con el MS SQL Server 2000
ª Resumen teórico:
) Entidades, atributos, interrelaciones y claves
¾ Una entidad es cualquier objeto real o abstracto capaz de proporcionar información sobre un determinado proble-
ma.
Por ejemplo:
♦ Para administrar la parte académica de una academia de computación e informática consideramos las en-
tidades: Profesor, Alumno, Curso, y Especialidad.
♦ Para administrar una videoteca (alquiler de videos) consideramos las entidades: Video, Ejemplar, Clien-
te, Empleado y Boleta.
♦ Para administrar una empresa de transportes ¿Qué entidades pueden considerarse?
¾ Toda entidad es distinguible de los demás por ciertas características fundamentales que se llaman atributos. La
notación es E (A1, A2,…, An) donde E es la entidad y los Ai los atributos.
Por ejemplo: Para las entidades de la academia.
‹ Profesor (Cod_profesor, Apellido, Nombre, Sexo, Fecha_nacimiento, Grado_título, DNI, Dirección,
Teléfono, Pago, Asesor)
‹ Alumno (Cod_alumno, Apellido, Nombre, Sexo, Fecha_nacimiento, Dirección, Teléfono, Foto, Especia-
lidad_alumno, Condición)
‹ Curso (Cod_curso, Nombre, Sumilla, Horas, Precio, Prerrequisitos)
‹ Especialidad (Especialidad_alumno, Descripción)
¾ Una ocurrencia de entidad es cada uno de los posibles valores que puede tomar un caso concreto de la entidad.
Por ejemplo
‹ (AV101, VELASQUEZ SUAREZ, Alfredo, M, 30/04/1977, Maestría, 00524789, 28 de julio 178,
245789, 780, Si) es una ocurrencia de la entidad Profesor.
‹ (BD02, Base de Datos I, Entidades, atributos, interrelaciones…, 60, 60, BD01) es una ocurrencia de la
entidad Curso.
¾ Las entidades pueden ser:
‹ Fuertes: Cuando tienen autonomía propia y no dependen de ninguna otra entidad. Por ejemplo: Profe-
sor, Alumno, Especialidad y Curso en el caso de la academia. Video, Cliente, Empleado y Boleta en el
caso de la videoteca.
‹ Débiles: Cuando no tienen autonomía y su existencia se supedita a la existencia de otras entidades. Por
ejemplo: Registro depende de la existencia de las entidades Alumno y Curso en el caso de la academia
y Ejemplar que depende de Video en el caso de la videoteca.
‹ Subcategoría (subentidad): Cuando se clasifica una entidad en subentidades (subcategorías) es una de
acuerdo a un atributo que se llama discriminante. Por ejemplo Alumno_Regular y Alumno_Libre son
subcategorías de la entidad Alumno en el caso de la academia y el discriminante es el atributo Condi-
ción. Para el caso de videoteca, Socio y Eventual son subcategorías de Cliente y el discriminante es Ti-
po.
¾ Los atributos pueden ser:
‹ Simples: Cuando no admiten subdivisión. Por ejemplo: Sexo, Fecha_nacimiento.
‹ Compuestos: Cuando están compuestos por subatributos. Por ejemplo: Datos_personales = (Apelli-
do_paterno, Apellido_materno, Nombre, Edad); Dirección = (Ciudad, Centro_poblado, Manzana, Ca-
lle, Número, Código_postal).
‹ Atómico: Cuando sólo puede tomar un valor. Por ejemplo: Sexo sólo puede tomar el valor Masculino o
Femenino; Fecha_nacimiento sólo puede tomar una única fecha del calendario.
‹ Multivaluado: Cuando puede tomar más de un valor Por ejemplo: Teléfono puede tomar los valores
244298 (teléfono domiciliario), 883000- 3071 (teléfono de trabajo) y 9314525 (teléfono celular); Au-
tor_libro puede tomar los valores Mario VARGAS LLOSA: La Ciudad y los Perros, La Casa Verde,
Conversación en la Catedral, La Guerra del Fin del Mundo, etc.

.Práctica Nº 1 Pág. 1 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3

‹ Derivados: Cuando sus valores se derivan de otros atributos. Por ejemplo: Promedio toma valores co-
mo consecuencia de promediar los valores de Práctica, Examen y Trabajo. Y Observación toma los va-
lores Aprobado o Desaprobado según Promedio sea mayor o igual a 11 y menor a 11.
¾ Una clave de una entidad E (A1, A2,…, An) es un conjunto minimal K de atributos de E que identifican de manera
única a una ocurrencia de la entidad E. Como hay varios conjuntos de atributos que cumplen la condición de cla-
ve, cada una de las posibles claves se llama clave candidata CK.
Por ejemplo: Para la entidad Profesor (Cod_profesor, Apellido, Nombre, Sexo, Fecha_nacimiento, Grado_título,
DNI, Dirección, Teléfono, Pago, Asesor): Cod_profresor, (Apellido, Nombre), DNI son claves candidatas.
¾ Una clave primaria o principal PK de una entidad E (A1, A2,…, An) es una clave candidata elegida por el técnico
para identificar de manera única e inconfundible a una ocurrencia de la entidad E. Toda clave primaria es única.
Por ejemplo: Cod_profesor es una clave primaria de la entidad Profesor. Es mejor que (Apellido,
Nombre) porque puede haber personas con el mismo nombre y apellido y mejor que DNI porque para ser profe-
sor no se requiere necesariamente de este documento.
¾ Una clave foránea es un atributo (o combinación de atributos) que contiene un valor que hace referencia a una
instancia de otra entidad (en algunos casos puede ser la misma entidad) donde el atributo o combinación de atri-
butos es clave primaria. Formalmente podemos definirla como sigue:
Sean E y F dos entidades y sea K un conjunto de atributos comunes a E y F y donde K es clave primaria de F. En-
tonces diremos que K es una Clave foránea de E. E se llama Entidad que referencia y F se llama Entidad refe-
renciada.
Por ejemplo: Para Alumno (Cod_alumno, Ape_alumno, Nom_alumno, Sex_alumno, Fna_alumno, Dir_alumno,
Tel_alumno, Fot_alumno, Esp_alumno, Condición) tenemos que Clave Primaria = Cod_alumno y Clave Forá-
nea = Esp_alumno porque Esp_alumno es clave primaria de Especialidad (Esp_alumno, Descripción)
¾ Una interrelación es una correspondencia bilateral entre entidades. Se denota por IR (E1: E2:…En) donde Ei es una
entidad y n es el número de entidades que intervienen en la interrelación y se llama grado de la interrelación. Por
el grado una interrelación puede ser: Binaria: Si el grado n = 2, Ternaria: Si el grado n = 3, Unaria (Reflexiva):
Si el grado n = 1 y n-aria: Si el grado es n > 3.
Por ejemplo: Para la academia podemos definir las siguientes interrelaciones binarias:
Dicta/ Es_dictada_por (Profesor : Curso)
Está_matriculado_en/ Matricula_a (Alumno : Curso)
Tiene / Tiene_una (Especialidad : Alumno)
Y la relación unaria Asesora_a / Es_asesorado_por (Profesor : Profesor)
♦ Las interrelaciones y sus cardinalidades pueden ser:
ƒ De uno a muchos con identificación (Identifying relationship) cuando la entidad su-
bordinada necesita de la clave de la entidad padre para identificarse. Cuando un atributo de la
entidad Padre (Parent) es parte de la clave primaria (PK), automáticamente se convierte en
parte de la clave primaria de la entidad Hija (Child) y además se convierte en clave foránea de
la entidad Hija (Child).
Dicta /
Profesor Curso
Es_dictado_por

ƒ De uno a muchos sin identificación (Non-identifying relationship) cuando la entidad


subordinada NO necesita de la clave de la entidad padre para identificarse. Cuando un atributo
de la entidad Padre (Parent) es parte de la clave primaria (PK), automáticamente se convierte
en clave foránea de la entidad Hija (Child).
Tiene /
Especialidad Alumno
Tiene_una

ƒ De muchos a muchos (Many-to-many relationship) .


Está_matriculado_en /
Alumno Curso
Matricula_a

ƒ De uno a uno (One-to-one relationship)

.Práctica Nº 1 Pág. 2 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3

Hace_uso_de / PC
Alumno Es_usada_por
Z

) Bases de datos y diseño


¾ Una tabla o relación es una disposición rectangular de datos donde en las filas van las ocurrencias de entidades
(registros) y en las columnas van los atributos (campos). Por ejemplo, la tabla Curso:
Tabla: Curso
Cod_curso Nom_curso Sumilla Horas Precio Prerrequisitos
BDO1 Windows XP y Herramientas de Internet Introducción… 80 120 Filas:
BD02 Introducción a las Bases de Datos Conceptos 80 120 BD01 Registros
básicos…
BD03 Modelamiento e Implantación de Bases de Preliminares… 80 120 BD02
Datos

Columnas: Atributos

Nota: En terminología de SQL se habla de filas y columnas. Se llama dominio al conjunto de todos los posibles valores
que puede tomar un atributo.
¾ Una base de datos de SQL Server consta de una colección de tablas con datos y otros objetos como vistas,
índices, procedimientos almacenados y desencadenantes, que se definen para poder llevar a cabo distintas opera-
ciones con datos. Los datos almacenados en una base de datos suelen estar relacionados con un tema o un proceso
determinados como, por ejemplo, la información de inventario para el almacén de una fábrica. Antes de crear una
base de datos, es importante entender las partes que la componen y cómo diseñarlas para asegurar que la base de
datos funcione correctamente una vez implementada.
¾ Un Sistema de Gestión de Bases de Datos (SGBD) o DBMS (DataBase Mangement System): Es un software
especializado en la gestión de bases de datos. Algunos de ellos son SQL Server 2000, Access, Visual FoxPro, Pa-
radox, Interbase, Visual dBase, Oracle, DB2, Sybase, etc.
¾ El diseño de base de datos es una actividad necesaria que tiene como finalidad crear bases de datos fáciles de
administrar, usar y mantener. Construir una base de datos sin diseño es como construir un edificio sin planos. El
diseño de BD tiene 3 fases:
♦ Diseño Conceptual: Es la representación de los requerimientos del problema y que se representa me-
diante el Esquema Conceptual que es el Diagrama Entidad/ Interrelación de Chen. En esta etapa aun no
se conoce el modelo de datos a usar, que pueden ser el Reticular, Jerárquico, Relacional, Dimensional o
el Orientado a Objetos.
♦ Diseño Lógico: El objetivo es transformar el Esquema Conceptual en Esquema Lógico que se basa en
el modelo de datos Relacional que se basa en tablas donde la información se almacena en filas y co-
lumnas. Tiene 2 fases:
ƒ Diseño Lógico Estándar: Que tiene en cuenta sólo el modelo de datos (Relacional) y tipos de
datos genéricos. Transforma el Esquema Conceptual en Esquema Lógico Estándar. En el
ERWIN se le llama modelo lógico.
ƒ Diseño Lógico Específico: Que tiene en cuenta el SGBD (Sistema de Gestión de BD) a utili-
zarse que en nuestro caso es el SQL Server 2000 y maneja los tipos de datos soportados por es-
te SGBD. Transforma el Esquema Lógico Estándar en Esquema Lógico Específico. En el
ERWIN se le llama modelo físico. En esta fase se puede crear también índices, vistas, desen-
cadenantes y procedimientos almacenados. Esta fase incluye también el proceso de normaliza-
ción. ERWIN normaliza hasta la 3FN.
♦ Diseño Físico: Transforma el Esquema Lógico Específico en Esquema Físico generando las respecti-
vas tablas de la BD.
¾ La normalización es un proceso que busca eliminar anomalías, ambigüedades, pérdidas y reducir al máximo las
redundancias en las bases de datos. Para esto se transforman las tablas en tablas equivalentes a través de restriccio-
nes. Cada restricción es una forma normal. Existen 6 formas normales fundamentales: 1FN (1ra Forma Normal),
2FN (2da. FN), 3FN (3ra. FN), FNBC (Forma Normal Boyce – Codd), 4FN (4ta. FN) y 5FN (5ta FN).
Para definir el concepto de normalización es necesario conocer el concepto fundamental de dependencia funcio-
nal entre atributos:
♦ Dada una tabla o relación R (A1, A2,…, An) donde A ={ A1, A2,…, An } es el conjunto de atributos de la
tabla R. Un descriptor X de R, es cualquier subconjunto X ⊂ A.

Práctica Nº 1 Pág. 3 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3

♦ Dados los descriptores X, Y de R, diremos que Y depende funcionalmente de X o que X determina a


Y, y escribiremos X →Y si y sólo si a todo valor de X le corresponde uno y sólo valor de Y. Ejemplo:
En la tabla Alumno (Cod_alumno, Ape_alumno, Nom_alumno, Sex_alumno, Fna_alumno, Dir_alumno,
Tel_alumno, Fot_alumno, Esp_alumno, Condición) tenemos que Cod_alumno → Ape_alumno,
Nom_alumno, Sex_alumno, Fna_alumno, Dir_alumno, Tel_alumno, Fot_alumno, Esp_alumno, Condi-
ción. Esto es que dado un código de alumno sólo puede corresponderle un solo apellido y un solo nom-
bre, etc. En otras palabras Cod_alumno → A ya que es obvio que Cod_alumno → Cod_alumno.
♦ En caso contrario se escribe X /→Y, y se lee Y no depende funcionalmente de X o que X no determi-
na a Y.
♦ Dependencia funcional plena o completa. Dados los descriptores X, Y de R, diremos que Y tiene de-
pendencia plena o completa de X, si Y depende funcionalmente de X pero no de un subconjunto de Y.
Escribiremos X ⇒Y en este caso.
Ejemplo: En la tabla Préstamo (Cod_libro, Título, Autor, Editorial, ID_usuario, Apellido, Nombre, Di-
rección, Teléfono, Fecha_préstamo, Fecha_devolución) tenemos que:
(Cod_libro, ID_usuario) ⇒ Fecha_préstamo es una dependencia funcional completa, puesto que:
Cod_libro /→ Fecha_préstamo
ID_usuario /→ Fecha_préstamo
En cambio, (Cod_libro, ID_usuario) → Editorial, no es una dependencia funcional completa, puesto que
Cod_libro → Editorial.
♦ Dependencia transitiva. Dados los descriptores X, Y, Z de R, diremos que Z tiene dependencia transi-
tiva de X, si X →Y, Y →Z y, Y /→X y escribiremos X ⎯ →Z en este caso.
Ejemplo: En la tabla Libro (Cod_libro, Título, Editorial, País, Páginas, Año_edición) tenemos que:
Cod_libro → Editorial, Editorial → País, Cod_libro → País y además Editorial /→ País. Entonces te-
nemos la dependencia transitiva Cod_libro ⎯ →País.
♦ Dependencia multivaluada. Dados los descriptores X, Y de R, diremos que X multidetermina a Y, y
escribiremos X → →Y sí y sólo si a todo valor de X le corresponde un conjunto de valores de Y inde-
pendientemente de los valores de los atributos de X, Y, A. También suele representarse con X → {Y}.
Ejemplo: En la tabla Autor (Autor, Título, Editorial):
Autor Titulo Editorial
Mario Vargas Llosa La Ciudad y los Perros Alfaguara
Mario Vargas Llosa La Ciudad y los Perros Peisa
Autor → → Título
Mario Vargas Llosa El Paraíso en la Otra Esquina Alfaguara
Mario Vargas Llosa El Paraíso en la Otra Esquina Peisa Autor → → Editorial
Juan Rulfo El Llano en Llamas Planeta
Juan Rulfo Pedro Páramo Planeta
♦ Brevemente:
ƒ Una tabla R está en Primera Forma Normal (1FN) si y sólo si todo atributo toma un único
valor en su dominio. Es decir todos los valores de celdas son atómicos.
ƒ Una tabla R está en Segunda Forma Normal (2FN) si y sólo si está en 1FN y todo atributo no
clave tiene dependencia funcional completa respecto a la clave primaria.
ƒ Una tabla R está en Tercera Forma Normal (2FN) si y sólo si todo está en 2FN y todo atribu-
to no clave no tiene dependencia transitiva respecto a la clave primaria.
ƒ Una tabla R está en la Forma Normal Boyce - Codd (FNBC) si y sólo si está n 3FN y todo
determinante es clave candidata.
ƒ Una tabla R está en la Cuarta Forma Normal (4FN) si y sólo si está en la FNBC y todo de-
pendencia multivaluada lo determina una clave candidata.
ƒ Nota: El ERWIN garantiza al menos las 3 primeras formas normales siempre y cuando se haga
un buen diseño.
¾ Los objetos como índices, vistas, desencadenantes y procedimientos almacenados son importantes desde la etapa
de diseño ya que:
♦ Los índices son ordenaciones de las filas que permiten acceder a los datos de la tabla rápidamente y en
un orden establecido alfabética, numérica o cronológicamente. [Indexes]
♦ Las vistas son tablas virtuales que resultan de consultas de usuario a partir de una o más tablas. En la
etapa de diseño debe considerarse las consultas más frecuentes de los usuarios finales. [Views]
♦ Los desencadenantes (desencadenadores o disparadores) son controles que se aplican a las columnas de
una tabla (o la tabla en su totalidad) cuando se aplica las operaciones de insertar (insert), eliminar (de-
lete) o actualizar (update) filas. [Triggers]

Práctica Nº 1 Pág. 4 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3

♦ Los procedimientos almacenados son scripts (secuencias de comandos SQL) o pequeños programas
que se almacenan en la BD para tareas frecuentes y necesarias, para ejercer un control adecuado en la
administración de la BD. [Store Procedures]

0. Previamente crear con WINDOWS XP una carpeta y subcarpetas en el drive C, D, E ... (aquel que tenga
entre paréntesis (libre), por ejemplo E(Libre)) dentro de con tu nombre o código, por ejemplo, si tu nombre
es Muriel (No se puede trabajar en disquetes. Evitar espacios en blanco o caracteres especiales en los nom-
bres). Es recomendable sacar siempre copia de los archivos de trabajo.

ATENCION: ¡¡Cada vez que


hagamos referencia a la
carpeta Muriel, estamos
MURIEL
refiriéndonos a la carpeta
MODELAMIENTO
que has creado con tu nombre
o código!!
SQLServer
MURIEL
Archivos DATOS Archivos
del ERWIN SQLServer de SQL
Server
MODELAMIENTO
Datos
Archivos de
Transact-SQL

La información de la que disponemos es la siguiente:


Problema: Consiste en administrar académicamente una base de datos para la academia ADA BYRON.
ª La academia de computación e informática Ada BYRON ofrece varias especialidades en módulos
de 6 ciclos secuenciales de 4 semanas de duración. Al final de cada módulo el alumno obtiene una
certificación de Técnico en un Área. Si un alumno lleva todos los módulos obtiene n el título pro-
fesional de Técnico en Informática.
ª Todo curso está a cargo de un profesor y se ofrece en un determinado número de Cursos y horario
semanal y tiene un precio.
ª Todo alumno está obligado a llevar al menos un curso y un máximo de 3 cursos por módulo.
ª Todo profesor está encargado de cumplir con el dictado de Cursos y percibir un sueldo. Se paga 30
soles por hora dictada. Como mínimo de dictar un curso y como máximo tres. Todo profesor tiene
un asesor en la especialidad que dicta. Hay un asesor por especialidad.
ª Por ahora las especialidades son: Ofimática, Administrador de Base de Datos, Programador de
Sistemas, Programador de Aplicaciones Visuales y Administración de Redes.
ª El profesor debe evaluar el curso con 4 notas: Práctica, Examen y Trabajo y alguna otra opcional.
El promedio debe obtenerse por (Práctica + Examen + Trabajo)/3 o (Práctica + Examen + Trabajo
+ Otro)/4.
1. Vamos a construir el MODELO CONCEPTUAL, representado en un DE /R genérico donde solo vamos a
señalar las entidades, las interrelaciones, su cardinalidad. Para esto vamos a utilizar como herramienta el
ERWIN 4.1. ¡SEGUIR PASO A PASO LAS INDICACIONES DE ESTA PRÁCTICA. TODOS LOS
PASOS DADOS SON ABSOLUTAMENTE NECESARIOS!
1.0 Encender la computadora con WINDOWS XP. Arrancar el ERWIN 4.1. (Computer Associates/All
Fusion/Erwin Data Modeler/Erwin). ¿Qué aparece en la pantalla?
1.1 Ignorar la ventana inicial ModelMart Connection Manager (cerrar). En la ventana siguiente Computer
Associates ERwin marcar Create new model y confirmar con OK. En la ventana siguiente Create
Model – Select Template marcar Logical /Physical y confirmar con OK. ¿Qué pantallas aparecen? Ver
Figura 1:

Práctica Nº 1 Pág. 5 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3

Figura 1
1.2 Identificar los elementos de la Caja de herramientas (Toolbok) (Figura 2) del ERWIN 4.1.:

Figura 2
ª ¿Qué hace c/u de los iconos de esta Caja de herramientas (Toolbox)?
1.3 Ir al menú Model/Model Properties y en el recuadro Auto–Transform Logical Objects ¿Qué ocurre?
Marcar las dos opciones:
; Many-to-Many Relationships with Association Table
; Supertype/Subtype with Identifying Relationships
) Confirmar con OK.
1.4 En la Barra de herramientas (ToolBar) (Figura 3) que esta debajo del menú principal hacer click en el
icono Entity level:

Figura 3
1.4.1 Hacer click en el icono de Entity de la Caja de herramientas (Toolbox) y crear las siguientes
entidades: Profesor, Curso, Alumno y Especialidad. Ver Figura 4.a
Profesor Curso Alumno

Especialidad

Figura 4.a
1.4.2 En la Barra de Herramientas (ToolBar) (Figura 3) hacer click en el icono Definition Level ¿Qué
ocurre con la Figura 4.a?
1.5 Señalar con el ratón c/u de las entidades, abrir el menú contextual con el botón derecho del ratón y elegir la
opción Entity Properties y usando la ficha Definition dar las siguientes definiciones para c/u de las enti-
dades (Figura 4.b):
ª Profesor: Persona empleada por la academia, cuya responsabilidad es dictar Cursos a los alumnos.
ª Alumno: Persona que está matriculada en las Cursos y debe asistir a las clases y ser evaluado.
ª Curso: Contenido de la materia que se desarrolla en Cursos.
ª Especialidad: Rama de la computación en la que se especializa un alumno.

Práctica Nº 1 Pág. 6 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3
Profesor Alumno
Curso
Persona empleada por la academia, cuya Persona que está matriculada en las
responsabilidad es dictar clases a los Contenido de la materia que se
clases y debe asistir a las sesiones de
alumnos. desarrolla en clases.
clase.

Especialidad
Rama de la computación en la que se
especializa un alumno.

Figura 4.b
Nota: El archivo debe guardarse como Academia(La extensión es .er1 que ERWIN coloca automáticamente) en
E:\Muriel\Modelamiento o donde corresponda.
1.6 Usar los tres tipos de interrelaciones que aparecen en la Caja de Herramientas (Toolbox) y construir el
siguiente esquema del Modelo Conceptual para la BD Academia (Figura 6) TENIENDO EN CUENTA
LAS OBSERVACIONES QUE APARECEN A CONTINUACION.
OBSERVACIONES:
™ TIENE IMPORTANCIA DE QUÉ ENTIDAD (PRIMER CLICK) A QUÉ ENTI-
DAD(SEGUNDO CLICK) SE TRAZA LA INTERRELACIÓN Y DE QUÉ TIPO ES LA INTE-
RRELACIÓN:
Dirección de interrelación Tipo de interrelación Nombre Cardinalidad
Padre (Parent) Hijo (Child) (esto sólo es explicación)
De Profesor a Curso Identifying relationship Dicta Es_dictado_por De uno a muchos
De Alumno a Curso Many-to-many relationship Se_matricula_en Matricula_a De muchos a muchos
De Especialidad a Alumno Non-identifying relationship Tiene Tiene_una De uno a muchos
De Profesor a Profesor Non-identifying relationship Asesora_a Es_asesorado_por De uno a muchos

Para poner el nombre de las interrelaciones marcar la interrelación respectiva y hacer doble click y en la ventana
Relationships /General en el cuadro Verb Phrase el nombre de la interrelación; por ejemplo para la interrela-
ción (Profesor, Curso): (Ver Figura 5)

Parent-to-Child Child-to-Parent
Dicta Es_dictado_por

Figura 5

Nota: Para visualizar los nombres de las interrelaciones abrir el menú contextual (botón derecho del ratón)
fuera de los elementos del diagrama y activar Relationship Display / Verb Phrase.
ª ¿Qué interrelaciones se han definido? (Dar el nombre con el Verbo Frase, por ejemplo: Dicta /
Es_dictado_por para (Profesor, Curso))
ª ¿Qué tipo de interrelaciones se han definido y cuál es su cardinalidad? ¿Cómo queda el esquema?
Ver Figura 6:

Práctica Nº 1 Pág. 7 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3
Profesor Alumno
Curso
Persona empleada por la academia, cu Se_matricula_en / Persona que está matriculada en las
Dicta / Contenido de la materia que s
responsabilidad es dictar clases a los Matricula_a clases y debe asistir a las sesiones
Es_dictado_por desarrolla en clases.
alumnos. clase.

Asesora_a /
Es_asesorado_por

Tiene /
Tiene_una

Especialidad
Rama de la computación en la que
especializa un alumno.

Figura 6
1.7 Guardar nuevamente el archivo del ERWIN con el nombre Academia .er1 en la carpeta Modelamiento que
hemos creado: E:\Muriel\Modelamiento (o donde corresponda).

2. Ahora vamos a construir el MODELO LÓGICO ESTANDAR. (Lógico en ERWIN) y el MODELO


LOGICO ESPECIFICO (Físico en ERWIN).
2.0 Para esto, hacer click en el icono Attribute level en la Barra de herramientas (Figura 3). Hacer doble click
sobre c/u de las entidades o abrir el Menú contextual con el botón derecho del ratón elegir Attributes y
llenar el nombre de los atributos y su tipo (Domain) según se indica en las entidades que siguen. Usar New
cada vez que se define un nuevo atributo y elegir el dominio de acuerdo a lo que sigue a continuación. Si un
atributo ya aparece definido, como por ejemplo Cod_profesor en la entidad Curso (debe haberse creado por
propagación de clave foránea) hay que dejarlo tal como está, sólo hay que cambiar la descripción, hay que
continuar con los siguientes atributos.
Nota: Usar Rename para renombrar y Delete para borrar atributos en caso necesario. Para subir o bajar el
nombre de un atributo usar los botones S óT. Si el atributo es parte de la clave primaria marcar ; Primary
Key. ¿Qué ocurre cuando uno o más atributos son marcados como parte de una clave primaria? Para la
descripción de atributos usar la ficha Definition (Es mejor llenar primero los nombres y dominios de cada
atributo, señalar las claves primarias y de dejar la descripción de cada atributo para el final).
Entidad: Profesor
Atributo Dominio Clave Descripción
Cod_profesor String Primaria Identificación de cada profesor, con formato XX999 donde XX son las
iniciales del primer nombre y primer apellido y 999 número correlativo
de 001 a …
Ape_profesor String Apellidos paterno y materno del profesor.
Nom_profesor String Nombre(s) del profesor.
Sex_profesor Unknown Sexo del profesor con los valores 1= Masculino y 0 = Femenino.
Fna_profesor Datetime Fecha de nacimiento del profesor en formato dd/mm/aaaa.
Grt_profesor Number Grado o Título del profesor con los valores 1 = Bachillerato, 2 =
Licenciatura o Título, 3 = Maestría y 4 = Doctorado.
Dni_profesor String DNI del profesor en el formato 99999999.
Tel_profesor String Teléfono domiciliario del profesor.
Dir_profesor String Dirección del profesor.
Pag_profesor Number Pago en soles del profesor.
Asesor String Identifica al profesor que lo asesora mediante el código.

) Nota: ¿Qué ha ocurrido en la entidad Curso? ¿Ya existe algún atributo?

Entidad: Curso

Práctica Nº 1 Pág. 8 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3

Atributo Dominio Clave Descripción


Cod_curso String Primaria Código del curso con el formato XX99, donde XX indica la
especialidad y 99 la serie que indica el ciclo y enumera el curso: 01,02,
03,….
(Cod_profesor) String (Primaria) Clave foránea que referencia a la tabla Profesor.
Nom_curso String Nombre del curso.
Sumilla Blob Breve descripción del contenido del curso.
Horas Number Número total de horas del curso.
Precio Number Precio en soles del curso.
Prerrequisitos String Cursos que sirven de requisito para el curso designados por su código.

Entidad: Alumno
Atributo Dominio Clave Descripción
Cod_alumno String Primaria Identificación de cada alumno, con formato 999999 donde 99 representa
el año de ingreso del alumno y 9999 un número correlativo.
Ape_alumno String Apellidos paterno y materno del alumno.
Nom_alumno String Nombre(s) del alumno.
Sex_alumno Unknown Sexo del alumno con los valores 1= Masculino y 0 = Femenino.
Fna_alumno Datetime Fecha de nacimiento del alumno en el formato dd/mm/aaaa.
Tel_alumno String Teléfono domiciliario del alumno.
Dir_alumno String Dirección del alumno.
Fot_alumno Blob Foto del alumno capturado con escáner.
Esp_alumno Number Clave foránea que referencia a la entidad Especialidad.
Condición String Especifica si el alumno es Regular o Libre.

Entidad: Especialidad
Atributo Dominio Clave Descripción
Esp_alumno Number Primaria Especialidad del alumno que toma valores de 0 a 5 por ahora.
Descripción String Descripción de la especialidad.

Y obtendremos algo semejante a la Figura 7 que corresponde al ESQUEMA LÓGICO ESTANDAR para
Academia:
Profesor Alumno
Cod_profesor Cod_alumno
Curso
Ape_profesor Dicta / Se_matricula_en /
Cod_curso Ape_alumno
Nom_profesor Es_dictado_por Matricula_a
Cod_profesor (FK) Nom_alumno
Sex_profesor Sex_alumno
Fna_profesor Nom_curso Fna_alumno
Grt_profesor Sumilla Tel_alumno
Dni_profesor Horas Dir_alumno
Tel_profesor Precio Fot_alumno
Dir_profesor Prerrequisitos Esp_alumno (FK)
Pag_profesor Condición
Asesor

Asesora_a /
Es_asesorado_por Tiene /
Tiene_una

Especialidad
Esp_alumno
Descripción

Figura 7
2.1 En el menú de herramientas hay una Caja de lista donde aparece Logical (Modelo lógico), cambiar a
Physical (Modelo físico).
) ¿Qué ocurre? ¿Se ha generado tablas nuevas? ¿Qué atributos han heredado las tablas derivadas?

Práctica Nº 1 Pág. 9 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3

2.2 Ir al menú Database/Choose Database... donde tendremos la ventana de diálogo respectiva.


) ¿Cuáles son los DBMS (SGBD) basados en SQL que soporta? (Target SQL DBMS)
) ¿Cuáles son los DBMS (SGBD) de escritorio que soporta? (Target Desktop DBMS)
) A nosotros nos interesa usar el DBMS (SGBD) MS SQL Server por lo tanto marcaremos SQL Ser-
ver y en SQL Server Versión pondremos 2000.
2.3 Con el modelo lógico específico (físico en ERWIN) vamos a realizar las siguientes tareas:
2.3.1 Darle tipo y el ancho de los atributos a las tablas del modelo físico. Para esto hacer doble click sobre
la tabla o abrir el Menú contextual con el botón derecho del ratón elegir Columns y en la ventana de
diálogo confirmar el nombre de las columnas, el tipo de dato y el ancho, su carácter de No Nulo o Nu-
lo según se indica en las estructuras de tablas que aparecen más abajo. La ficha del diálogo debe estar
en SQL Server y debe obtenerse el siguiente ESQUEMA LÓGICO ESPECÍFICO (Figura 7). Si el
tipo de dato no figura en la lista, como es el caso de Text, entonces hay que tipearlo.
2.3.2 Generación de tablas nuevas por cada interrelación de muchos a muchos. En las versiones anteriores de
ERWIN toda interrelación de muchos a muchos genera automáticamente una nueva tabla como dice la
teoría de Modelamiento de Bases de Datos; sin embargo en esta versión (4.1) esto es opcional. Por esta
razón hemos dado el paso 1.3 donde forzamos a que se cree una Tabla Asociación para toda relación
de muchos a muchos. De otro modo hay que marcar con el ratón la interrelación muchos a muchos y
abrir el menú contextual con el botón derecho del ratón y elegir la opción Create Association Table.
) Agregar las columnas que faltan en las tablas derivadas según se indica en las estructuras dadas a
continuación.
) Renombrar la tabla Alumno_Curso por Registro.
• Las estructuras de las tablas en el modelo físico de ERWIN son:

Tabla: Profesor
Columna Tipo_dato Opción de Nulo
Cod_profesor Char(5) No Nulo
Ape_profesor Char(40) No Nulo
Nom_profesor Char(35) No Nulo
Sex_profesor Bit No Nulo
Fna_profesor Datetime No Nulo
Grt_profesor Int Nulo
Dni_profesor Char(8) Nulo
Tel_profesor Char(6) Nulo
Dir_profesor Char(50) Nulo
Pag_profesor Money Nulo
Asesor Char(5) No Nulo

Tabla: Curso
Columna Tipo_dato Opción de Nulo
Cod_curso Char(4) No Nulo
(Cod_profesor) Char(5) No Nulo
Nom_curso Char(100) No Nulo
Sumilla Text Nulo
Horas Int Nulo
Precio Money Nulo
Prerrequisitos Char(5) Nulo

Tabla: Alumno
Columna Tipo_dato Opción de Nulo
Cod_alumno Char(6) No Nulo
Ape_alumno Char(40) No Nulo
Nom_alumno Char(35) No Nulo

Práctica Nº 1 Pág. 10 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3

Sex_alumno Bit No Nulo


Fna_alumno Datetime No Nulo
Tel_alumno Char(6) Nulo
Dir_alumno Char(50) Nulo
Fot_alumno Image Nulo
Esp_alumno Int Nulo
Condición Char(7) Nulo

Tabla: Especialidad
Columna Tipo_dato Opción de Nulo
Esp_alumno Int No Nulo
Descripción Char(40) No Nulo
Y la tabla derivada:
Tabla: Alumno_Curso Renombrar por Registro
Columna Tipo_dato Opción de Nulo
(Cod_alumno) Char(6) No Nulo
(Cod_curso) Char(4) No Nulo
(Cod_profesor) Char(5) No Nulo
Fecha Datetime Clave Primaria
Practica Numeric(5,2) Nulo
Examen Numeric(5,2) Nulo
Trabajo Numeric(5,2) Nulo
Otro Numeric(5,2) Nulo
Y obtendremos algo semejante a la Figura 8:
Profesor Alumno
Cod_profesor: char(5) Cod_alumno: char(6)
Curso
Ape_profesor: char(40) Registro
Cod_curso: char(4) Ape_alumno: char(40)
Nom_profesor: char(35) Cod_alumno: char(6) Nom_alumno: char(35)
Cod_profesor: char(5)
Sex_profesor: bit Cod_curso: char(4) Sex_alumno: bit
Fna_profesor: datetime Nom_curso: char(100) Cod_profesor: char(5) Fna_alumno: datetime
Grt_profesor: int Sumilla: text Fecha: datetime Tel_alumno: char(6)
Dni_profesor: char(8) Horas: int Dir_alumno: char(50)
Practica: numeric(5,2)
Tel_profesor: char(6) Precio: money Fot_alumno: image
Examen: numeric(5,2)
Dir_profesor: char(50) Prerrequisitos: char(5) Esp_alumno: int
Trabajo: numeric(5,2)
Pag_profesor: money Condición: char(7)
Otro: numeric(5,2)
Asesor: char(5)

Especialidad
Esp_alumno: int
Descripción: char(40)

Figura 8
2.3.3 Volver a guardar el archivo del ERWIN con el nombre
Academia .er1 en E:\Muriel\Modelamiento (o donde corresponda).
2.3.4 Crear los Índices que sean necesarios para cada tabla,
según se indica en las estructuras dadas. Para esto proce-
der de la siguiente forma:
¾ Señalar la tabla respectiva y abrir el menú contextual
y elegir la opción Indexes ¿Qué ocurre? ¿Ya existe
algún índice definido? ¿Cómo se llama? ¿Cuál es su

Práctica Nº 1 Pág. 11 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3

tipo? ¿Que columnas son sus miembros? Ver Figura 9


NOTA: EN TODAS LAS TABLAS SE ENCONTRARÁ DEFINIDOS LOS INDICES DE TIPO
PK QUE HAN SIDO CREADOS POR LA CLAVE PRIMARIA. DEBEN QUEDAR TAL COMO
ESTÁN.
¾ Hacer click en la ficha New y llenar los datos soli- Figura 9
citados para cada tabla: (Ver Figura 9)
¾ Darle el nombre en Index (Índice).
¾ Dejar tal como está Key Group (Grupo Clave).
¾ Marcar Unique en el caso que se indique que el
índice es único. En caso contrario desmarcar.
¾ Haciendo uso de la columna Members, seleccionar las columnas que forman parte del índice
haciendo uso del botón X. Para anular la selección de una columna usar el botónW. Aquí también
se puede indicar si el índice es descendente marcando DESC.
¾ Usar la ficha Comment para los comentarios.

Tabla: Profesor
Indice Úni- Columnas Comentario Descendente
co
CK_Apenom ; Ape_profesor Ordena la tabla por la prioridad Apellido, Nombre. Puede ser clave
Nom_profesor candidata.
IX_Fechanac Fna_profesor Ordena la tabla por fecha de nacimiento.
IX_Grado Grt_profesor Ordena la tabla por la prioridad Grado_Título, Apellido, Nombre.
Ape_profesor
Nom_profesor
IX_Pago Pag_profesor Ordena la tabla por pago descendentemente. ;

Tabla: Curso
Indice Único Columnas Comentario Descendente
CK_Nombre ; Nom_curso Ordena la tabla por el nombre del curso. Puede ser clave candidata
IX_Horas Horas Ordena la tabla por el número de horas descendentemente. ;
IX_Precio Precio Ordena la tabla por el precio descendentemente. ;

Tabla: Alumno
Indice Único Columnas Comentario
CK_Apenom ; Ape_alumno Ordena la tabla por la prioridad Apellido, Nombre. Puede ser clave
Nom_alumno candidata.
IX_Fechanac Fna_alumno Ordena la tabla por fecha de nacimiento.
IX_Especialidad Esp_alumno Ordena la tabla por la prioridad Especialidad, Apellido, Nombre.
Ape_alumno
Nom_alumno
Tabla: Especialidad
Indice Único Columnas Comentario
CK_Descripción ; Descripción Ordena la tabla por la descripción. Puede ser clave candidata.

Tabla: Registro
Índice Único Columnas Comentario Descendente
IX_Alumno Cod_alumno Ordena la tabla por el código del alumno.
IX_Curso Cod_curso Ordena la tabla por el código de curso.
IX_Fecha Fecha Ordena la tabla por la fecha.
IX_Práctica Práctica Ordena la tabla por la nota de práctica descendentemente. ;
IX_Examen Examen Ordena la tabla por la nota de examen descendentemente. ;
IX_Trabajo Trabajo Ordena la tabla por la nota de trabajo descendentemente. ;

Práctica Nº 1 Pág. 12 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3

2.3.5 Crear dos Vistas: Profesores_Asesores (profesores que asesoran a los profesores de su especialidad) y
Alumnos_Detalle_Especialidad (alumnos con la descripción de sus especialidades). Para esto procede-
remos como sigue:
2.3.5.1 Para la vista Profesores_Asesores, seguir los pasos siguientes:
¾ Seleccionar el icono View table de la Caja de Herramientas. Darle el nombre Profesores_Asesores.
Ubicar la vista debajo de la tabla Profesor. Ver Figura 10

View table
Figura 10
¾ Ubicarse en la vista, abrir el menú contextual y señalar la opción Database view properties. ¿Qué
aparece? ¿Que fichas tiene la ventana de diálogo?
¾ Señalar la ficha From y seleccionar la tabla Profesor.
¾ Señalar la ficha Select y seleccionar las columnas Cod_profesor, Ape_profesor, Nom_profesor y
Asesor. (ver Figura 11)
¾ Señalar la ficha Where y en la opción Where escribir la
expresión:
Asesor = Cod_profesor
¾ Señalar la ficha SQL ¿Qué expresión SQL aparece en
pantalla?
¾ Señalar la ficha Comment y escribir el comentario:
Esta vista visualiza a los profesores que cumplen el papel
de asesores.
¾ Confirmar todo con OK. ¿Cómo aparece la vista? ¿A que Figura 11
tabla está ligada?
2.3.5.2 Para la vista Alumnos_Detalle_Especialidad, seguir los
pasos siguientes:
¾ Seleccionar el icono Create view table de la Caja de Herramientas. Darle el nombre Alum-
nos_Detalle_Especialidad. Ubicarla debajo de la tabla Alumno.
¾ Ubicarse en la vista, abril el menú contextual y señalar la opción
Database view properties.
¾ Señalar la ficha From y seleccionar las tablas Alumno y Espe-
cialidad.
¾ Señalar la ficha Select y seleccionar las columnas
Ape_alumno, Nom_alumno y Esp_alumno de la tabla Alumno
y la columna Descripción de la tabla Especialidad.
¾ Señalar la ficha Where y en la opción Where escribir la expre- Figura 12
sión:
Alumno.Esp_alumno = Especialidad.Esp_alumno
¾ En la opción Group By escribir la expresión:
Alumno.Esp_alumno, Ape_alumno, Nom_alumno, Descripción
(Ver Figura 12)
¾ Señalar la ficha SQL ¿Qué expresión SQL aparece en pantalla?
¾ Señalar la ficha Comment y escribir el comentario:
Esta vista visualiza los apellidos, nombres y especialidades, describiéndolas.
¾ Confirmar todo con OK. ¿Cómo aparece la vista? ¿A qué tablas está ligada?
2.3.5.3 Crear la vista Profesores_Postgrado que visualice a los profesores con maestría o doctorado.
2.3.6 Crear dos Desencadenantes: Profesor_Apellido_Mayúscula (Los apellidos de los profesores deben ir
siempre con mayúsculas cuando se ingresan datos) y Alumno_Regular_Libre (Reconoce si el alumno
el regular o libre cuando se ingresa sus datos). Para esto procederemos como sigue:
2.3.6.1 Para el desencadenante Apellido_Mayúscula, seguir los pasos siguientes:
¾ Señalar la tabla Profesor ya abrir el menú contextual, elegir la opción Triggers ¿Qué ocurre?
¾ Hacer click en la ficha New y darle el nombre de Profesor_Apellido_Mayúscula.

Página Nº 1 Pág. 13 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3

¾ En la ventana Triggers señalar la ficha General y seleccionar


Insert en el cuadro Trigger On.
¾ Señalar la ficha Code ¿Qué script SQL aparece?
¾ Reemplazar la primera parte del script con el texto siguiente:
create trigger Profesor_Apellido_Mayúscula on Pro-
fesor
for insert
as
update Profesor Figura 13
set Ape_profesor = upper(Ape_profesor)
Nota: Dejar el script tal como está a partir de /* ERwin Builtin
%Datetime */
(Ver Figura 13)
¾ Señalar la ficha Expanded ¿Qué script SQL aparece en pantalla?
¾ Señalar la ficha Comment y escribir el comentario:
Los apellidos de los profesores deben ir siempre con mayúsculas cuando se ingresan datos.
¾ Confirmar todo con OK.
2.3.6.2 Para el desencadenante Alumno_Regular_Libre, seguir los pasos siguientes:
¾ Señalar la tabla Alumno ya abrir el menú contextual, elegir la opción Triggers ¿Qué ocurre?
¾ Hacer click en la ficha New y darle el nombre de Alumno_Regular_Libre.
¾ En la ventana Triggers señalar la ficha General y seleccionar Insert en el cuadro Trigger On.
¾ Señalar la ficha Code ¿Qué script SQL aparece?
¾ Reemplazar la primera parte del script con el texto siguiente:
create trigger Alumno_Regular_Libre on Alumno
for insert
as
update Alumno
set Condición =
case
when Esp_alumno = 0 then 'LIBRE'
when Esp_alumno > 0 then 'REGULAR'
end
Nota: Dejar el script tal como está a partir de /* ERwin Builtin %Datetime */
¾ Señalar la ficha Expanded ¿Qué script SQL aparece en pantalla?
¾ Señalar la ficha Comment y escribir el comentario:
Reconoce si el alumno el regular o libre cuando se ingresa sus datos.
¾ Confirmar todo con OK.
2.3.6.3 Construir el desencadenante Alumno_Apellido_Mayúscula basándose en 2.3.6.1. (Donde diga
Profesor (profesor) sustituir por Alumno (alumno).

El resultado final del Esquema Lógico Específico (Físico en el ERWIN) debe ser semejante a la Figura 14:

Práctica Nº 1 Pág. 14 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3
Profesor Alumno
Cod_profesor: char(5) Cod_alumno: char(6)
Curso
Ape_profesor: char(40) Cod_curso: char(4) Ape_alumno: char(40)
Nom_profesor: char(35) Registro Nom_alumno: char(35)
Cod_profesor: char(5)
Sex_profesor: bit Cod_alumno: char(6) Sex_alumno: bit
Fna_profesor: datetime Nom_curso: char(100) Cod_curso: char(4) Fna_alumno: datetime
Grt_profesor: int Sumilla: text Cod_profesor: char(5) Tel_alumno: char(6)
Dni_profesor: char(8) Horas: int Fecha: datetime Dir_alumno: char(50)
Tel_profesor: char(6) Precio: money Fot_alumno: image
Dir_profesor: char(50) Prerrequisitos: char(5) Práctica: numeric(5,2)
Esp_alumno: int
Pag_profesor: money Examen: numeric(5,2)
Condición: char(7)
Asesor: char(5) Trabajo: numeric(5,2)
Otro: numeric(5,2)

Alumno_Detalle_Especialidad

Ape_alumno: Alumno.Ape_alumno
Nom_alumno: Alumno.Nom_alumno
Profesores_Asesores Esp_alumno: Alumno.Esp_alumno
Descripción: Especialidad.Descripción
Cod_profesor: Profesor.Cod_profesor
Ape_profesor: Profesor.Ape_profesor
Especialidad
Nom_profesor: Profesor.Nom_profesor
Asesor: Profesor.Asesor Esp_alumno: int
Descripción: char(40)

Profesores_Postgrado

Ape_profesor: Profesor.Ape_profesor
Nom_profesor: Profesor.Nom_profesor
Grt_profesor: Profesor.Grt_profesor

Figura 14
2.4 Volver a guardar el archivo del ERWIN con el nombre Academia .er1 en E:\Muriel\Modelamiento (o
donde corresponda).
2.5 Ir menú Tools y elegir la opción Forward Engineer /SchemaGeneration
• ¿Qué aparece?
) Elegir la opción Table y por aceptar omisión la sección Table. Hacer click en la ficha Preview.
) ¿Qué aparece en la respectiva ventana?. Es conveniente grabar este archivo, porque es la especificación del
modelo físico de nuestra base de datos. Hay que guardarlo en E:\Muriel\SQLServer (o el que corresponda)
con el nombre de Academia y darle la extensión .sql. con la opción grabar (botón ). Minimizar la ventana
de ERWIN.
3. Ahora vamos a trabajar con el MS SQL Server 2000.
) El Administrador Corporativo de SQL Server 2000 (Enterprise Manager): Es una de las herramientas
componentes de MS SQL Server 2000 que nos permite configurar y administrar los objetos componentes y
nos va a permitir crear y administrar bases de datos
en la arquitectura Cliente / Servidor (Figura 15):
3.0 Cargar el Administrador Corporativo de MS
Server 2000. (Microsoft SQL Server / Adminis-
trador Corporativo).
• ¿Cómo se presenta el Administrador Corporativo?
• ¿Qué se observa a la izquierda y a la derecha de las
dos zonas que aparecen? Este es el Este es el Panel
• ¿Cuál es el servidor que aparece asignado dentro del Árbol de de detalle
grupo de Servidores de la PC que se está manejando? consola
3.1 Vamos preparar el SERVIDOR. En primer lugar
vamos a crear una base de datos. Para esto vamos a Figura 15
seguir los pasos siguientes:
3.1.1 Hacer click en la + de Servidores Microsoft
SQL Server.
3.1.2 Hacer click en la + de Grupo de SQL Server. Al instalar SQL Server 2000 debe haberse creado un
grupo con el nombre de usuario de Windows ¿Cuál es este? Abrir nuevamente este árbol haciendo
click en la + .

Práctica Nº 1 Pág. 15 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3

3.1.3 Hacer click en el botón derecho de Base de datos y en el menú contextual elegir Nueva base de
datos.¿Que ocurre?
) En Nombre asignarle Academia. (¡OJO! Si eres del turno de la tarde debes asignar como nombre
Academia_Tarde, y si eres del turno de la noche Academia_Noche). Si cualquiera de esos nom-
bres ya existen ponerle Academia_Muriel, Academia_MGM, etc., con tu nombre o iniciales.
) Hacer click en la ficha Archivo de datos y
♦ En Nombre de archivo aceptar el nombre por omisión ¿Cuál es?
♦ En Ubicación buscar la ubicación de la carpeta que hemos creado con la ayuda del botón
, para guardar el archivo Academia_Data.MDF: (Ver Figura 16)
E:\Muriel\SQLServer\Datos\Academia_Data.MDF (o el que corresponda)
Con este botón debe ubicarse
la carpeta que hemos creado

Figura 16
NOTA: SQL Server guarda todo los archivos dentro del mismo programa.
♦ En Tamaño inicial (MB): ¿Qué tamaño le asigna por omisión? El usuario puede asignar
el tamaño en Mb según crea conveniente. Se sugiere 2 Mb.
♦ En Grupo de Archivos aceptar PRIMARY por omisión.
) En la ficha Registro de transacciones:
♦ Aceptar el nombre de archivo por omisión ¿Cuál es?
♦ En Ubicación repetir lo anterior y ubicar la carpeta para guardar el archivo Acade-
mia_Log.LDF: (Ver Figura 17)
E:\Muriel\SQLServer\Datos\Academia_Log.LDF (o el que corresponda)
Con este botón debe ubicarse
la carpeta que hemos creado

Figura 17
♦ En Tamaño inicial (MB): ¿Qué tamaño le asigna por omisión? El usuario puede asignar
el tamaño en Mb según crea conveniente. Se sugiere 1 Mb.
) Confirmar con Aceptar.
) Abrir la base de datos Academia. Hacer click en Tablas
• ¿Qué ocurre? ¿Qué tablas ha creado SQL para esta base de datos?
) Minimizar el SQL Server.

3.2 Vamos preparar el CLIENTE. Tenemos nuestra base de datos Academia que hemos creado en 3.1
3.2.1 Vamos a crear un DSN (Data Source Name =
Nombre del Origen de Datos). Para esto vamos a
seguir los pasos siguientes:
) Ir a la pantalla inicial de WINDOWS y
usar el menú Inicio/Configuración/Panel
de Control o hacer clic en Mi PC y activar
el Panel de Control. En el Panel de Con-
trol ubicar Panel de Con-
trol/Herramientas Administrativas/ Orí-
genes de datos(ODBC)) En el diálogo
Figura 18
Administrador de orígenes de datos
ODBC que aparece hacer click en el botón
Agregar (Add) y en el diálogo Crear
nuevo origen de datos ubicar SQL Server
y hacer doble click sobre él. ¿Qué ocurre?

Práctica Nº 1 Pág. 16 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3

) En el diálogo Crear nuevo origen de datos para SQL Server, asignarle el nombre sqlAcademia.
En Descripción escribir Conexión con la Base de Datos Academia. El Servidor debe ser el que
ha asignado la PC respectiva. Se sugiere elegir (local) que acrece en la lista. Hacer click en la fi-
cha Siguiente.
) Indicar que SQL Server será el que haga la autenticación usando la Id de inicio de SQL Server.
) El Id. inicio de sesión que se va a utilizar será sa (No indicar contraseña). Hacer click en la fi-
cha Siguiente.
) En el siguiente diálogo, hay que establecer la base de datos predeterminada (En la lista hay que
elegir en nuestro caso la base de datos Academia). Hacer click en Siguiente y en el siguiente diá-
logo hacer click en Finalizar. Aquí debe terminar el proceso y debe aparecer la pantalla siguiente
(Figura 18):
) Hacer click en Probar origen de datos para verificar que todo está correcto.
) Confirmar con Aceptar.
3.2.2 Volver al ERWIN 4.1. Seguir los siguientes pasos:
) Abrir el archivo Academia.er1 en el modelo físico revisar que las tablas, índices, vistas y desencade-
nantes estén todos correctos de acuerdo a las indicaciones dadas.
) En el modelo físico. Ir al menú Tools/Forward Engineer /Schema Generation donde tendremos la
ventana de diálogo respectiva SQL Server Schema Generation.
Nota: Para mantener el mismo orden de las columnas de ERWIN en el SQL Server, en la ventana SQL
Server Schema Generation hay que desactivar la opción Physical Order:
SQL Server Schema Generation Column
Column …Physical Order

) Hacer click en Generate. Aparecerá una ventana de diálogo donde debe llenarse los datos (Semejante
a Figura 19) :
User Name: sa
Password: (dejar vacío)
Database: Academia
Server Name: (poner el nombre que Windows asignó pa-
ra el Grupo de SQL Server de SQL Server. Por lo gene-
ral el número de la PC en la que estás trabajando, por
ejemplo PC80, PC81, etc. Debe coincidir con el Grupo
definido en SQL Server).
) Hacer click en Connect. ¿Qué ocurre? ¿Qué aparece en la
Figura 19
respectiva ventana?
El nombre dado al usuario sa significa server
adiministrator que concede todos los dere-
chos del usuario sobre la base de datos. Si
todo está correcto debe generar las 5 tablas sin
problemas. Si hay fallas hay que interrumpir
con Abort cada vez que haya pausa hasta
confirmar finalmente con OK y revisar los Aquí deben estar las 5 tablas
modelos lógico y físico, porque debe haber obtenidas: Alumno, Curso,
errores. Una vez corregidos los errores generar Especialidad, Profesor y
las tablas para SQL Server. Registro
Minimizar la ventana de ERWIN. Figura 20
4. Vamos a volver a cargar el Administrador
Corporativo de MS Server 2000.
4.1 Abrir la base de datos Academia que hemos
creado. Hacer click en Tablas. Si las tablas no aparecen, abrir el menú contextual y elegir la opción Ac-
tualizar. Ver Figura 20
• ¿Qué ha ocurrido? ¿Qué nuevas tablas ha creado SQL para esta base de datos?

Práctica Nº 1 Pág. 17 de 18
UNJBG /ITEL /Carrera Técnica de Analista - Programador
CURSO: Base de Datos I – Periodo 2010-3

• Hacer doble click sobre c/u de las 5 tablas ¿Qué ocurre? ¿Qué aparece en pantalla?
4.2 Hacer click en Vistas y verificar la existencia de las tres vistas que hemos creado: Profesores_Asesores,
Profesores_Postgrado y Alumno_Detalle_Especialidad. Si las vistas no aparecen, abrir el menú contex-
tual y elegir la opción Actualizar.
4.3 La existencia de Índices y Desencadenates puede comprobase, señalando la tabla respectiva en el Panel
de detalle (por ejemplo, Alumno), abrir el menú contextual y elegir la opción Diseñar tabla.
4.3.1 Para revisar los índices para cada una de las tablas: Usar el icono Propiedades de tablas e índice de la
barra de herramientas (BH). En la ventana Propiedades hacer click en la ficha Índices y claves y revi-
sar la lista de Índice seleccionado: (deben estar todos los que hemos creado en el ERWIN para la tabla
elegida).
4.3.2 Para revisar los desencadenantes: Usar el icono Desencadenadores de la BH. En la ventana
Propiedades del desencadenador revisar la lista de Nombre: (deben estar todos los desencadenantes
que hemos creado en el ERWIN para la tabla elegida: 2 para Alumno: Alumno_Apellido_Mayúscula y
Alumno_Regular_Libre y 1 para Profesor: Alumno_Apellido_Mayúscula).

¡¡AQUÍ FINALIZA ESTA PRACTICA!!


(Pero lo que sigue es importante, pero sólo debe ejecutarse cuando sea necesario)
4.4 Para trasladar u obtener copia de la Base de Datos:
ª Para llevar la BD Academia a otra computadora o para obtener una copia de respaldo de esta BD es
necesario copiar los archivos Academia_Data.MDF y Academia_Log.LDF que están en la carpeta:
E:\Muriel\SQLServer\Datos\ (o la que corresponda)
Estos archivos almacenan toda la información de la BD Academia.
NOTA: SQL Server 2000 no deja copiar estos archivos si antes no se separa la BD respectiva. (En
nuestro caso la BD Academia)
ª Para separar la BD, usar el Administrador Corporativo, señalar la BD respectiva (p.ej. Academia)
abrir el menú contextual y usar Todas las tareas /Separar base de datos. Una vez separada la BD
respectiva ya se puede copiar a una memoria USB o un CD o comprimir para copiar en disquetes.
ª Para restaurar la BD, señalar Base de datos en el Árbol de Consola, abrir el menú contextual y usar
Todas las tareas /Adjuntar base de datos y seguir los pasos. Esto se puede hacer en la misma PC o
en otra PC donde copiamos los 2 archivos mencionados
4.5 Para visualizar sólo objetos de nuestra Base de Datos y no los del sistema:
ª Como puedes observar en la figura 20, SQL Server 2000 muestra las BD del sistema y todos los ele-
mentos (tablas, vistas, procedimientos almacenados, etc.) del sistema. Si sólo queremos visualizar
nuestros propios objetos (p. ej., sólo nuestras 5 tablas: Alumno, Curso, Especialidad, Profesor y Re-
gistro) en el Árbol de Consola señalar el servidor de BD respectivo (p. ej., PC11 (Windows NT) o
(local)1(Windows NT)), abrir el menú contextual y elegir Modificar propiedades de registro del
servidor SQL Server y en el recuadro Opciones desactivar Mostrar bases de datos y objetos del
sistema: (Ver Figura 21)

Figura 21.

¡No olvidarse de presentar los informes!


Tacna, 2010

Práctica Nº 1 Pág. 18 de 18