Está en la página 1de 22

DISEÑO FISICO

Es pasar el grafo relacional en sentencias SQL.

1-Modelo físico: representa como es la base de datos, que tablas va a tener, que
columnas y que restricciones va a tener esa relación.
Este modelo puede variar en función del SGBD. El SQL es un estándar, y en función del
SQL la sintaxis va a ser en un 99% la misma. Pero a veces podremos encontrar algunas
diferencias.

2-Lenguaje SQL
Fundamental en la base de datos RELACIONAL. Todas.
Es un lenguaje declarativo. Lenguajes como c#, php, Python, c++, son imperativos. Tu
le dices al ordenador lo que tiene que hacer y como lo tinee que hacer. Sin embargo,
SQL es declarativo, le digo al ordenador cual es el problema que quiero resolver y el
SGBD se busca la vida para resolver el problema. Por ejemplo: dame todos los clientes
que hayan formado un contrato entre una fecha y otra y el SGBD ordena las
operaciones y te da el dato.

SQL nos permite crear tablas, añadir restricciones, consultar datos etc…

Es un estándar con ultima versión 2016.


El lenguaje se divide en 4 categorías: es decir que el propio lenguaje SQL tiene sus
dialectos y nos servirá para hacer cosas diferentes.

 DDL (lenguaje de definición de datos): permite crear y modificar la estructura


de las tablas de la base de datos.
 DML (Lenguaje de manipulación de datos): para insertar, modificar eliminar
datos de la base de datos.
 DQL (lenguaje de consulta de datos): para realizar consultas sobre los datos de
la base de datos. Dame los datos de esas dos columnas de la tabla customers.
 DCL (lenguaje de control del datos): gestiona los permisos de los usuarios y
trabahar con transacciones. Grant (dar permiso garantizar acceso)
3-MYSQL

Es el SGBD que vamos a utilizar.


Es de Oracle.

3.1-Estructura cliente servidor:

Un ejemplo es cuando accedemos a internet, cuando accedes es pq hay un ordenador


que tiene un servidor, un programa que cuando le haces la petición le respondes.

Vamos a tener un servidor con la base de datos y luego vamos a tener programas que
son clientes que se conecta a la base de datos y te devuelve el dato. Hay muchos
clientes o programas diferentes de MySQL.

Nosotros tendereremos en el ordenador instalado el MySQL server y el cliente. El


MYsql creara el servidor y luego instalaremos un cliente que lo conectaremos con la
base de datos. Todo eso funcionara en nuestro ordenador.
Cuando tu estas desarrollando te copias el servidor a tu ordenador y trabajas con el. Y
cuando lo tienes todo montado, metes los cambios en el servidor del cliente.
4-DATA DEFINITION LANGUAGE (DDL)
4.1-Creacion de una base de datos

4.2-Creacion de una tabla

4.3-Tipos de
datos
 Char vs Varchar:
o Char (9) ---> con esto estamos indicando que quiero guardar una cadena
de longitud 9.
2 A
Estaríamos guardando 2 A y el resto de espacios de memoria se quedan
vacíos pero reservados para completar la longitud de 9 caracteres. Aquí
si tu guardas 2A con un char(9) no estás aprovechando bien la memoria.

o VARCHAR (9): en este caso solo se va a ocupar los espacios necesarios


de los que tu has indicado.
2 A

2 0 0 0 0 0 0 0 A

Por así decirlo, es como que se amolda a la cantidad de caracteres que


vas a introducir. Por ejemplo par nombres va muy bien.

En el 90% de los casos es mejor usar varchar. Pero si sabes el numero de


caracteres es más eficiente el char (como por ejemplo en el DNI).

 Decimal (4,2)---> 99,99 : hay un máximo de 4 dígitos de los cuales 2 son


decimales.
4.4-Nomenclatura
4.5-Valores por defecto

4.6-borrar tablas
4.7-Transformacion de relaciones

4.7-Restricciones

 4.7.1-Restricciones de columna y tabla


 4.7.2-Nombre de las restricciones

Ejemplos:

1-PRIMARY KEY
Podemos tener claves primarias compuestas (como por ejemplo lo del hotel): En este
caso es obligatorio usar el tipo de restricción de tabla. Porque si usas la otra indicarías
que hay dios claves primarias.

Mas compacto seria PRIMARY KEY (numero, hotel).

2-NOT NULL

El NOT NULL solo se puede especificar como restricción de columna. Es decir que solo
se pone detrás de esa columna.

3-UNIQUE
Forma más abreviada

UK NN mezclado
4-FOREIGN KEY

Más abreviada
Más abreviado aún

Mezcla UK, NN, Y FK


Te pone un nulo en la columna de la tabla a la que referencia. Es decir que si tu
eliminas un libro, en la tabla autor donde corresponde ese libro introducirá un nulo.

Lo coherente es crear primero la tabla libro y luego la de autor. Si creamos antes la de


autor, luego a la hora de introducir la columna libro y poner que es una clave ajena,
nos dará un error porque no tenemos la tabla a la que referencia.
.

REPASO ODC ODR


sI BIRAS A SARA DE LA TABLAL PORPIETARIO, Y AHORA NOS VAMOS A VIVIENDA esrta
cumpliendo la integridad referencial pq no paunta a la clave a la que referencia pq
acabamos de borrar a Sara. Con lo cual a la hora d e crear la base de datos hay que
indicar a la base de datos que queremos hacer ante esta situación. Podemos ellegri que
queremos que hace la bd en ncaso de borra o actuakzar.

Con ODR: se borra un propietario que esta referenciado en la vivienda la bd da un


error. Por tantno tendríamos que

Con uptade no puedes modif el dni el prop si existe una referencia de ese dni en
propietario.
Por defecto aunque no escribamos ODR OUR la bd lo hace por si sola.

La otra opción es ODC OUC. En ODC, en la clave ajena hay que ponerlo. SI borramos a
Sara automáticamente se borran las filas enteras de la tabal vivienda donde esta el
propietario.
ODN OUN: pone a null en la clave agena.

El mas común es la ODC.


5-CHECK

VS
6-ALTER TABLE

6.1-Modificar el nombre de una tabla

6.2-Añadir columnas a una tabla

6.3-Eliminar columnas a una tabla


6.4-Renombrar columnas de una tabla

6.4-Modificar la definición de una columna


6.5-Añadir una restricción de tabla

6.6-Eliminar una restricción de tabla


Hace que una columna DE TIPO NUMERICA (de tipo entero), se autoincremente. Pq
muchas veces tenemos un numero como clave primaria y lo que queremos es que a
medida que se meten tuplas / fila, se va sumando uno a uno con cada fila.
A la hora de hacer las inserciones por ejemplo si metemos. Juan por primera vez en la
base de datos y previamnte esta ha estado varia, tendrá el valor 1 como clave primaria
y Andrea el valor de 2.
si la tabla esta vacia tendrá el valor 1 de código y ana el valor 2.
COMENTARIO SOBRE DISEÑO FISICO

Es posible que encontremos diferentes represetnaciones de una base de datos,


diferentes a al s de clase. Vamos a ver un ejemplo pero que es la misma info pero con
dibujos diferentes.
EL UML es un conjunto de diagramas para diseñar software en general. Y hay un
montón de diagramas dentro de UML. pUES HAY UNOS DIAFTAMS QE se lmaann
entidad relación y tienen el mismo nombre que los diagramas entidad relación pero
son diferentes pero con el mismo nombre. El de clase es el original. Pero este que
vamos a ver también aparece basante. Esta represetnacion se llama diagrama entidad
relación pero esta acaballo entre el modelo lógico y el diseño físico. Pq tenemos info
sobre als relaciones pero tabien sobre los tipos de los datos.. El problema es que hay
unos sibolos que connectan las tabals los cambian.

En este caso tenemos una serie de tablas. Y als líneas nos indica las relaciones.
pOdemos que con un allave nos indican la clave primaria como el id de la tabla
departamento. Un rombo vacio, son columnas que admiten valores vacios. El rombo
con relleno es que non admite nulos. Los rombos rojos son claves ajenas. Si el rombo
esta vacio y es rojo es que es una clave ajena que admite nulos.

Luego tenemos sompbolos raros. Dos ralls paralelas nos dice que la participación
máxima y minima es uno. Eso dice que un empleado esta obliatoiramente en un
departamento.y como mucho en uno.

El traingulitp es que participación miniuma y máxima N.

El circulito es que participación


DML

Vamos a hacer los ejemplos sobre una base dadtos llamada oficina.
uN EMPLEADO PUEDE RESERVAR VARIAS SALAS DE REUNIONES? Se puede repetir
empleado pq no es unic en la tabla reserva.
Una misma sala de reuniones s epuede reservar por diferentes empeleados? Si que
peude ser reservada por mulitples empelados en diferentes reservas.

INSERT
Insert INTO (opcional)

Cuando veamos {} puedes elegir una de las dos opciones.

Los cocchetes no se escriben ni las barras

MODIFICAR

En un update puedes cambiar varias columnas a la vez.


Actualiza la abla ampeledo y po la columna despacho ABP1 donde despacio es nunlll.
En la condición podemos referirnos a varias columnas de lal tabla.

También podría gustarte