You are on page 1of 8

BASE DE DATOS

SOFTWARE A UTILIZAR: SQL SERVER 2017 (VERSION EXPRESS)

Instalar advance Tods

INTRODUCCION DE CONCEPTOS DE BASE DATOS

El diseño de una base de datos relacional incluye cinco etapas:

1. Fase de diseño.
2. Estructuras de datos relacionales.
3. Relaciones.
4. Codificación sql.
5. Prueba y corrección de errores.

Fases de diseño de una base de datos

Un proceso de diseño de una base de datos requiere cuatro fases distintas:

1. Diseño conceptual: Incluye el mapa mental de la base de datos que obtenemos


de los requerimientos iniciales y la obtención de información con los clientes.
Durante esta fase tratamos de identificar lo que el usuario quiere. Tratamos de
identificar de la mejor manera posible los procesos de negocios para lo que se
construye este modelo de datos. En este enfoque lo más importante es obtener
las reglas de negocio que gobiernan el uso de los datos.

2. Diseño Lógico: Esta fase es un refinamiento del trabajo realizado en la fase


conceptual transformando la información obtenida en un diseño conceptual
estructurado que refleja una base de datos completamente relacional que será
la base para el diseño y la implementación. Durante esta fase definimos las
entidades requeridas, la relación entre ellas, los atributos de cada entidad y los
dominios de dichos atributos.
3. Fase de implementación: En esta fase se adapta el modelo lógico para su
implementación en RDBMS (Relational Database Managemente System) 12
reglas de cod.

TAREA: INVESTIGAR 12 REGLAS DE COOD


4. Fase física: En esta fase se refiere a los procesos de optimización de una
implementación de una base de dato. Durante esta fase de proyecto se verifica
los índices, los requerimientos de hardware y todos aquellos procesos
involucrados en el funcionamiento óptico de nuestro proyecto.

ESTRUCTURAS DE DATOS RELACIONALES

Base de Datos y esquema

Una base de datos es simplemente una colección estructurada de hechos o datos. No


necesita obligatoriamente de manera electrónica, una base de datos podría ser el
catálogo de tarjetas de una librería, una hoja en Excel, un archivo de texto plano o una
base de datos en sql server. En sql server una base de datos es el contenedor de más
alto nivel que se puede utilizar para agrupar todos los objetos y el código que cumplen
una tarea en común. En el siguiente nivel se encuentran los schemas, se utilizan los
esquemas para agrupar objetos en la base de datos con temas en común o incluso con
dueños en común. Todos los objetos en un servidor de base de datos pueden ser
referenciados nombrándolos por la base de datos que reside y el esquema que los
contiene y se haría de la sig. manera.

Basededatos.Nombredelschema.Nombredelobjeto

Tablas, Filas y Columnas

El objeto que estará involucrado en todas nuestras decisiones de diseño y codificación


es la tabla. En nuestros diseños una tabla se utilizara para representar algo ya sea este
algo real o imaginario. Una tabla puede ser utilizada para representar personas, lugares,
cosas o ideas (normalmente representan pronombres).

La definición de la palabra tabla informática hablando es la siguiente:

Un conjunto ordenado de datos especialmente uno en el cual los datos están


almacenados en columnas y filas de una manera rectangular.

Una tabla posee diferentes nombres dependiendo del punto de vista


Punto de vista Nombre Descripción
Consiste de filas y columnas sin filas
Teoría Relacional Relación duplicadas.
Representa una tabla con columnas y filas.
Lógico/conceptual Entidad Puede representar una o varias tablas.
Es una tabla ya existente y lista para su
utilización y que envía resultados a un
Implementación Recorset/Rowset cliente.
Los archivos que conforman una base de
Física Archivo datos.

Dentro del punto de vista de la estructura de una tabla el siguiente aspecto son las
columnas de manera general una columna es utilizada para almacenar un fragmento de
información de una fila de una tabla. Atómico o escalar son los términos más comunes
para describir el tipo de dato que se almacena en una columna. La clave es que el valor
que representa los datos según la columna se encuentre en el nivel más bajo posible
requerido para trabajar en ellas.
Una columna puede ser conocida como atributo (desde el punto de vista
lógico/conceptual) y como campo (desde el punto de vista físico).
Una fila es donde se almacena la información completa para un registro completo de
una tabla. También se le conoce como Tupla (desde el punto de vista relacional) o como
registro (desde el punto de vista físico).
Dominios
El domino de una columna es un conjunto valido de valores para que esta los almacene.
Por ejemplo considere una columna que esta pensada para almacenar la fecha de
cumpleaños de un empleado. La sig. Lista que contiene limites y valores a considerar:
1. Se debería almacenar solamente la fecha y no la hora.
2. El valor de dicha fecha debe ser anterior a la fecha actual.
3. El valor de la fecha debería de evaluar si la persona posee una edad legal para
trabajar.
4. El valor de la fecha no debería ser mayor a 70 años.
Los dominios también pueden ser mas específicos por ejemplo.
Que solo soporte entero positivo.
Una dirección de correo electrónico.
Una cadena de caracteres de no menos de 30 caracteres.
Un rango de valores como notas (0-100).
Llaves
En la teoría relacional una relación no permite tener tuplas duplicadas. Sin embargo en
los RDBMS no existe una limitante para indicar que no se permiten filas duplicadas sin
embargo es altamente recomendado que todas las tablas tengan almenos una llave
candidata definida que aseguren que todas las filas son únicas.
Propósito de las llaves
Cada tabla debería de tener al menos una llave candidata este es un atributo o
combinaciones de atributos que puedan identificar de manera única y sin ambigüedad
cada instancia de una entidad (cada fila de una tabla). En resumen una llave define que
una columna es única dentro de un conjunto de columnas, una tabla puede tener
cuantas llaves sean requeridas para mantener el estado de únicas para las filas. Y una
llave puede tener cuantas columnas sean necesarias para mantener dicho estado.
Llaves primarias y alternas
Una llave primaria (primary key) se utiliza como el identificador primario para una
entidad. Esta se utiliza para identificar de manera única a cada una de las instancias de
esa entidad. Puede darse el caso en que se tenga mas de un identificador para realizar
esta tarea y cuando eso sucede luego de elegir la llave primaria las restantes serán
conocidas como llaves alternas (alternate keys).
La elección de una llave primaria es una mezcla de conveniencia y facilidad de uso. Lo
importante de recordar es que debemos proteger la base de datos de valores duplicados
mediante la implementación de estas llaves.
Eligiendo una llave: dado que las llaves pueden consistir de cualquier número de
columnas las mejores prácticas nos indican que se deben limitar el número de columnas
en una llave como sea posible.
Tipos de llaves
Llaves Naturales
Llaves sustitutas (surrogate key)
Una llave natural se define como una llave candidata que tiene una relación lógica con
los atributos dentro de esa fila. En otras palabras es un atributo “real” de una entidad y
que el usuario de manera lógica utiliza para identificar de manera única a cada instancia
de una entidad.
Las llaves sustitutas llamadas también llaves artificiales son lo opuesto a una llave
natural esto significa que se usan para sustituir una llave natural dado que en algunos
escenarios una llave natural no es lo suficientemente estable o confiable para su uso en
cuyo caso se decide utilizar una llave sustituta.
Una llave sustituta puede identificar de manera única a cada una de las instancias de
una entidad pero no tiene ningún significado con respecto a la entidad que representa.
Las llaves sustitutas usualmente son mantenidas por el sistema.
Son métodos comunes para la creación de llaves sustitutas, la utilización de valores
que incrementa un número de manera monótona el uso de una función de tipo hash o
incluso un identificador único global GUID (Global Unique Identifier) el cual es un
identificador que es único en todas las maquinas del mundo
Valores Desconocidos (NULL)
En una base de datos debe existir una manera de indicar a un valor para una columna
dada o que dicho valor no es relevante. Anteriormente se utilizaban valores fuera de los
rangos legítimos para denotar dicho valor (estos valores se conocen como centinela).
Por ejemplo los programadores anteriormente fechas antiguas en una columna de fecha
van a indicar que dicho valor no importaba o utilizaban un valor negativo para indicar
que ese dato no debía ser tomado en cuenta o si la columna era de texto utilizaban los
valores desconocidos (Desconocido, N/A, unknown).
Esta aproximación es correcta el problema viene cuando se requiere un código especial
para cada tipo de columna. En su lugar se utiliza un tipo común de valor llamado NULL.
En la teoría relacional significa que ese valor no se conoce en ese momento. Un valor
NULL es distinto a una cadena de caracteres vacía, en blanco o cero y se utilizan en un
RDBMS para representar información faltante de manera sistemática
independientemente del tipo de datos.
Existen algunas propiedades de NULL que debemos tener en consideración:
1. Cualquier valor concatenado con NULL es NULL. Dado que NULL representa
cualquier valor valido. si un valor conocido se concatena con un desconocido el
resultado es un valor desconocido.

2. Todas las operaciones matemáticas con NULL retornaran NULL.

3. Las comparaciones lógicas con NULL son especiales. Cuando se introduce


NULL en una expresión boolean la tabla de verdad se vuelve mas compleja.
Cuando se evalúa una condición existen tres posibles resultados Falso,
Verdadero o Desconocido.

Relacion de Muchos a muchos

En este tipo de relación en lugar de que exista un solo padre tiene uno o muchos hijos se da el
caso de que mas de un padre posee uno o mas hijos. Una relación de muchos a muchos no es
implementar directamente utlizando un simple código en nuestro RDBMS sino que se realiza
de manera que se introduce una nueva relación en la tabla. En lugar de que la llave de una
tabla sea migrada a otra tabla ambas llaves de ambas tablas en la relación se migran a una
nueva tabla que se utiliza para la implementación de la relación.

Relaciones no binarias

Una relación no binaria involucra mas de dos tablas en la relación, este tipo de relaciones
parecen problemáticas al principio pero son muy comunes y fáciles de implementar por
ejemplo.
Un aula de clase es utilizada por una clase durante un periodo de tiempo.

Los fabricantes de vehículos venden sus vehículos a través de distribuidores.

Lenguaje de acceso de datos (SQL)

Uno de los aspectos mas importantes de la teoría relacional es que debe existir un lenguaje de
alto nivel mediante el cual todos los datos pueden ser accesados 5ta regla de cod. Lenguaje
que ha sido estandirazdo en el transcurso de los años es SQL (structured query language). SQL
es un lenguaje relacional que se divide en dos fragmentos:

1. DDL (Data Definition Language)


2. DML (Data manipulation language)

SQL paso a hacer el estándar del ANSI en 1986 y del ISO en 1989. SQL aparecion por primera
vez en 1974 fue diseñado por Donald D. Chambelin (1974). Mediante SQL podemos realizar las
siguientes tareas:

1. Definición de las estructuras y de los datos.


2. Restricciones de integridad.
3. Límites para las transacciones.
4. Manipulación de datos.

LENGUAJE DE MODELADO DE DATOS

Si la base de datos que se modela se realiza de manera correcta el modelo de datos es la mejor
forma de documentación que un sistema puede obtener. Nos puede mostrar de manera
general un vistazo a las condiciones de un sistema y los programadores y los usuarios finales
pueden verlo y obtener una idea de cómo el sistema funciona y como las tablas están
relacionadas.

El lenguaje de modelado que utilizaremos es el estándar IDEF1X.

Entidades

En el estándar IDEF1X una entidad es modelada en cajas rectangulares como se realiza en la


mayoría de metodologías de modelado. Existen dos tipos de endentidad que pueden ser
modeladas .

Independientes del identificador siendo la diferencia entre ambas en como la yallve primaria
de dicha entidad esta estructurada. Una entidad dependiente es llamada de esta forma dado
que su llave primaria no tiene dependecia de otra entidad en otras palabras nos existen llaves
foráneas de otras entidades en nuestra llave primaria.

Lineamientos para las Llaves primarias


Los nombres de las entidades nunca deben de estar en plural, la razón es porque el nombre
debe referirse a la instancia del objeto que esta siendo modelado en lugar de una colección.

El nombre dado debe corresponder directamente a la esencia de la entidad que esta siendo
modelado.

Todos los atributos de una entidad deben poseer un nombre único dentro de la misma
estos son representados por una lista de nombres dentro del rectángulo de la entidad
Llaves primarias
Toda entidad en el estándar IDEF1X debe tener una llave primaria. La llave primaria
puede ser un único atributo o puede estar compuesta de multiples atributos.

PRODUCTO
Tipo

Estilo
Atributos que forman parte de la llave.
Tamaño

Seria

Nombre

Laves Alternas
Es un conjunto de uno o mas atributos en los cuales se debe garantizar que sean
únicos para todas las instancias de una entidad

PRODUCTO
Tipo

Estilo
Atributos que forman parte de la llave.
Tamaño

Seria

Nombre (AK1) Llave alterna.

Llaves Foraneas
Son llaves primarias de una entidad que sirven como referencia a una instancia de otra
entidad.

Album
Codigo

Nombre (AK1)

Artista (FK)

Distribuidor (FK)

Genero
Relaciones
En el estándar IDEF1X cada relación se encuentra representada por una línea que
une las dos entidades con un circulo solido en uno de los extremos de la línea que
indica donde el atributo es migrado.

PADRE HIJO

Las relaciones se representan de diversas formas que identifica como la tabla padre
esta relaciona con la tabla hijo. Los diferentes tipos de relación se marcan en estas
categorías:
1. Relaciones identificadoras: donde la llave primaria de una tabla es migrada a
la llave primaria de otra tabla. El hijo será una entidad dependiente

PADRE HIJO
Codigo

Codigo CodigoPadre

Atributo1 Atributo1

Atributo2 Atributo2

2. Relaciones no identificadoras: Donde la llave primaria es migrada como un atributo


que no es parte de la llave primaria. El hijo será una entidad independiente mientras
exista el tipo de relación no identificativa.

3. Identificador opcional: Este tipo de relación existe cuando una relación no


identificativa no requiere un valor hijo

You might also like