Modelamiento de Base de Datos - IPLACEXcursos.iplacex.cl/CED/MBD4008/S5/ME_5.pdf 2 SEMANA 5...
Transcript of Modelamiento de Base de Datos - IPLACEXcursos.iplacex.cl/CED/MBD4008/S5/ME_5.pdf 2 SEMANA 5...
-
www.iplacex.cl
Modelamiento de Base de Datos UNIDAD Nº III
-
www.iplacex.cl
2
SEMANA 5
Introducción a la idea
Bienvenidos a la quinta semana de Modelamiento de Base de datos. En esta unidad
vamos a implementar el modelo de base de datos para solucionar en forma eficiente
los requerimientos de información de la organización. A continuación, veremos los
aspectos generales del lenguaje SQL.
En esta cápsula de aprendizaje veremos los siguientes temas para construir la base de
datos:
1. Creación y manejo de datos usando sentencias DDL.
2. Creación de usuarios.
3. Creación de privilegios.
4. Creación de roles.
Lenguaje de consulta estructurado (SQL)
SQL es el lenguaje de consulta fundamental de los SGBD relacionales.
SQL pretende ser un lenguaje que simula su escritura en lenguaje normal,
de ahí que se le considere un lenguaje de cuarta generación (4GL).
Consta de palabras especiales y de expresiones. Se trata de un lenguaje que
intenta agrupar todas las funciones que se le pueden pedir a una base de datos,
por lo que es el lenguaje utilizado tanto por administradores como por
programadores o incluso usuarios avanzados.
Es un lenguaje de tipo declarativo, se especifica qué es lo que desea realizar, no
el cómo queremos realizarlo (el cómo es la pregunta de los lenguajes imperativos,
como PL/SQL, C, C++ o Java).
-
www.iplacex.cl
3
SEMANA 5
Los orígenes del SQL están ligados a los de las bases de datos relacionales. En
1970 E.F. Codd propone el modelo relacional y asociado a este modelo un
sublenguaje de acceso a los datos.
Basándose en estas ideas, los laboratorios de IBM definen el lenguaje SEQUEL
(Structured English QUEry Language) que más tarde sería ampliamente
implementado por el SGBD experimental System R, desarrollado en 1977 también
por IBM.
Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un
programa comercial. El SQL pasa a ser el lenguaje por excelencia de los diversos
SGBD relacionales surgidos en los años siguientes y es por fin estandarizado en
1986 por el ANSI (Instituto Nacional Americano de Estandarización). Al año
siguiente este estándar es también adoptado por la
ISO (Organización Internacional de
Estandarización).
En el año 1989 ANSI publicó una extensión de la
norma para SQL denominada SQL-89.
La siguiente versión de la norma fue en SQL-92
seguida de SQL:1999 (compatible con Oracle).
-
www.iplacex.cl
4
SEMANA 5
Usando SQL para comunicarse con un RDBMS
Usando SQL se puede conectar al Servidor Oracle.
SQL tiene las siguientes ventajas:
Eficiente.
Fácil de entender y usar.
Funcionalmente completo, ya que con SQL se
pueden definir, recuperar y manipular datos en las
tablas.
Elementos de un código desarrollado en SQL
Comandos SQL: DML, DDL, DCL etc.
Palabras reservadas: hacen referencia a un elemento SQL individual: SELECT,
FROM, WHERE, JOIN..
Cláusulas: es una parte de una sentencia SQL: SELECT employee_id, last_name
Sentencia: es una combinación de dos o más cláusulas: SELECT employee_id,
last_name FROM employees;
Operadores: permiten crear expresiones
complejas: Pueden ser aritméticos (+, -, /,
*, …) o lógicos (>,
-
www.iplacex.cl
5
SEMANA 5
Significado del formato de las sentencias SQL
El formato de las sentencias SQL significan lo siguiente:
[] (corchetes): los corchetes sirven para encerrar texto que NO es obligatorio en el
comando, es decir para indicar una parte opcional.
| (barra vertical): este símbolo indica opción, es decir que se puede elegir entre
varias opciones.
... (puntos suspensivos): indica que se puede repetir el texto anterior en el
comando continuamente (significaría y así sucesivamente).
{ } (llaves): indican opciones mutuamente exclusivas pero obligatorias. Es decir,
opciones de las que sólo se puede elegir una opción, pero de las que es obligatorio
elegir una.
-
www.iplacex.cl
6
SEMANA 5
Las reglas a seguir para construir una sentencia SQL válida son:
Las sentencias SQL NO son Case-Sensitive.
Las sentencias SQL pueden ser una o más
líneas.
Las palabras reservadas no pueden ser
abreviadas o continuar en líneas diferentes.
Las cláusulas son normalmente escritas en líneas
diferentes.
Las sentencias SQL deben terminar con un punto
y coma (;).
Idealmente las palabras reservadas deben ser
escritas en mayúsculas; todas las otras palabras,
como nombre de columnas y tablas en
minúsculas.
-
www.iplacex.cl
7
SEMANA 5
Organizando la idea
Bienvenidos a la quinta semana de Modelamiento de Base de datos. En
esta unidad vamos a implementar el modelo de base de datos para
solucionar en forma eficiente los requerimientos de información de la
organización. A continuación veremos como es la arquitectura de servidor
de la base de datos Oracle.
Arquitectura de un Servidor de Base de Datos Oracle
Un Servidor de Base de Datos Oracle consta de una Instancia y una Base de
Datos.
Una instancia Oracle es un medio de acceso a una base de datos Oracle por la
que siempre abre una única base de datos, la cual está formada por estructuras
de procesos en segundo plano y de memoria. Una instancia Oracle se compone
de la estructura de la memoria SGA (Área Global del Sistema) y de los procesos
background que se utilizan para gestionar una base de datos.
La Base de Datos almacena y recupera la información relacionada. Una base de
datos Oracle tiene una estructura lógica y una física. La estructura física de la
base de datos es el juego de archivos del sistema operativo en la base de datos.
La estructura física incluye tres tipos de archivos: Archivos de control, Archivos
de datos y Archivos redo log online.
-
www.iplacex.cl
8
SEMANA 5
-
www.iplacex.cl
9
SEMANA 5
Detallando la idea
Bienvenidos a la tercera semana de Modelamiento de Base de datos.
En esta unidad vamos a construir un modelo relacional normalizado
para solucionar en forma eficiente los requerimientos de información de
la organización. A continuación, trabajaremos con la creación y manejo
de objetos en mi base de datos (sentencia DDL).
Sentencias SQL
-
www.iplacex.cl
10
SEMANA 5
Tipos de datos para las columnas de la tabla
-
www.iplacex.cl
11
SEMANA 5
Modificando una tabla
Se utiliza la sentencia ALTER TABLE para agregar una columna nueva, modificar una
columna existente, definir un valor por defecto para la nueva columna y/o eliminar una
columna.
Agregar una columna:
Modificar una columna:
Eliminar una columna:
-
www.iplacex.cl
12
SEMANA 5
Agregando una Columna a la Tabla
Ejemplo:
Para agregar una columna a la tabla se debe utilizar la cláusula ADD.
La nueva columna pasa a ser la última de la tabla.
-
www.iplacex.cl
13
SEMANA 5
Modificando la columna de una Tabla
Se puede cambiar el tipo de dato, el tamaño y el valor por defecto de una columna usando
la cláusula MODIFY. Un cambio en el valor por defecto de una columna sólo afecta a las
inserciones de filas posteriores en la tabla.
Ejemplo:
-
www.iplacex.cl
14
SEMANA 5
Eliminación de una Tabla Se eliminan todos los datos y la estructura de la tabla, se valida cualquier transacción pendiente
(porque tiene un COMMIT implícito), se borran todos los índices y no se puede realizar
ROLLBACK de la sentencia DROP TABLE (deshacer la sentencia).
Cambio de nombre de un objeto
Para cambiar el nombre de una tabla, una vista, una secuencia o un sinónimo, se debe utilizar la
sentencia RENAME. Para modificar el nombre de un objeto, debe ser el propietario.
-
www.iplacex.cl
15
SEMANA 5
Usuarios predefinidos de una BD Oracle
Al momento de crear una Base de Datos Oracle se crean dos usuarios: SYS y SYSTEM.
El usuario SYS:
Es el dueño de todas las tablas y vistas del diccionario de la Base de Datos (tablas
que guardan información propia de la Base de Datos.
Posee todos los privilegios (permisos) para efectuar cualquier actividad en la Base
de Datos.
Para conectarse a la Base de Datos con este usuario se debe como SYSDBA.
El usuario SYSTEM:
Se utiliza para efectuar tareas rutinarias en la Base de datos como creación de
usuarios, asignar permisos a usuarios etc.
Posee menos privilegios que el usuario SYS.
-
www.iplacex.cl
16
SEMANA 5
Creación de un usuario en la BD Oracle
Para conectarnos con un servidor Oracle necesitamos un modo de acceso que incluye
los permisos que dispondremos durante la conexión; estos permisos se definen a partir
de un nombre de usuario.
Un USUARIO es un identificador necesario para acceder a una base de datos. Un
usuario es un conjunto de permisos que se aplican a una conexión de base de datos. Un
usuario es además propietario de los objetos que cree.
Antes de crear un usuario de base de datos se debe crear una conexión a la Base de
Datos (como usuario SYSTEM) a través de una herramienta de desarrollo como
SQLDeveloper
-
www.iplacex.cl
17
SEMANA 5
Una vez creada la conexión a la Base de Datos ésta aparecerá al lado izquierdo
Posteriormente en Otros Usuario elegir Crear Usuario
-
www.iplacex.cl
18
SEMANA 5
Además, se les deben asignar los permisos o privilegios básicos para que el usuario
pueda trabajar en la Base de Datos.
Los privilegios: especifican qué operaciones puede realizar un usuario y sobre qué
objetos de la base de datos tiene autorización, es decir, qué tarea puede realizar
con esos objetos y si puede emitir determinadas instrucciones. Algunos privilegios
de sistema son create session, create table, create user, alter user, drop user,
create profile, create trigger, create rol.
Un rol de base de datos: es una agrupación de permisos de sistema y de objeto.
Los permisos controlan el acceso a los distintos objetos de una base de datos; pueden
concederse a nivel de usuario o a nivel de rol. En el ejemplo, se asignan los Roles
Connect y Resource. Además al usuario se le debe asignar cuanto espacio de la base
de datos tendrá como máximo para poder crear sus objetos en el área que se le asignó
(tablespace)
-
www.iplacex.cl
19
SEMANA 5
Una vez creado el nuevo usuario ya está en condiciones para poder crear objetos.
Cuando el usuario posea objetos propios tomará el nombre de Esquema.
Esquema HR
Existe un esquema de ejemplo HR que se utilizará para efectuar algunas lecciones de
SQL. El Modelo de tablas de este esquema es el que se muestra en la imagen:
-
www.iplacex.cl
20
SEMANA 5
Demostrando la idea
A continuación, trabajaremos con procedimiento
almacenado y función almacenada, en donde
utilizaremos SQL Developer para demostrar lo
aprendido en esta unidad. Veremos paso a paso la
creación de usuario, creación de roles, creación de
privilegios y creación y manejo de objetos con
sentencias DDL.
Para comenzar, abre sqldeveloper.exe.
Para crear un nuevo usuario, primero debemos conectarnos con un servidor Oracle de
modo que tengamos los permisos suficientes para crear el nuevo usuario.
Haz clic en el icono “+” para crear la nueva conexión.
-
www.iplacex.cl
21
SEMANA 5
Creamos una nueva conexión “conSystem”, donde el usuario será “System” y la
contraseña es la que creaste al instalar SQL Developer. Recuerda probar la conexión
antes de conectarte a ella.
Escribe los campos necesarios, haz clic en “probar.
Dentro de la conexión nos dirigimos a la carpeta “Otros Usuarios”
Haz clic derecho en “Otros Usuarios” y selecciona la opción Crear Usuario.
-
www.iplacex.cl
22
SEMANA 5
Le daremos el nombre y contraseña del nuevo usuario.
El nombre será “miUsuario” y la contraseña será “1234”.
Luego hacemos clic en aplicar.
Ahora seleccionaremos los tablespace.
Haz clic en “Tablespace por Defecto”.
-
www.iplacex.cl
23
SEMANA 5
Ahora seleccionaremos los tablespace.
Haz clic en “USERS”.
Luego, haz clic en “Tablespace Temporal” y elige la opción TEMP.
Finalmente, haz click en el botón Aplicar
-
www.iplacex.cl
24
SEMANA 5
Aparecerá un mensaje de error
Haz clic en “Aceptar”.
Buscamos el usuario creado en Otros usuarios.
Haz clic en “Otros Usuarios”.
-
www.iplacex.cl
25
SEMANA 5
Buscamos el usuario creado y hacemos clic derecho.
Haz clic derecho en “MIUSUARIO” y elige la opción Editar Usuario.
En la pestaña Roles Otorgados seleccionaremos CONNECT y RESOURCE, de esta
manera el usuario podrá conectarse y utilizar algunos recursos de la base de datos.
Marca las casillas de Otorgado y Valor por defecto de “CONNECT y RESOURCE”, luego
haz clic en Cuotas.
-
www.iplacex.cl
26
SEMANA 5
En la pestaña Cuotas seleccionamos Ilimitado para la Tablespace USERS, esto indicará
que no tendrá tope de memoria para trabajar con tablas.
Seleccionar ilimitado y clic aplicar.
Entonces crearemos una nueva conexión con la información del nuevo usuario creado.
Haz clic en “+” para crear una nueva conexión.
-
www.iplacex.cl
27
SEMANA 5
Entonces crearemos una nueva conexión con la información del nuevo usuario creado.
Nombre conexión: miUser, Usuario: miUsuario, Contraseña: 1234.
Haz clic en probar.
Luego, haz click en el botón Conectar.
Nos conectamos a conexión creada y vemos que aparece una pestaña llamada hoja de
trabajo.
Aquí es donde irán los comandos SQL como la creación y modificación de tablas.
Creamos una tabla persona, la cual tiene un rut y un nombre.
Para esto colocamos:
CREATE TABLE PERSONAS
-
www.iplacex.cl
28
SEMANA 5
Podemos ver que la tabla PERSONAS se ha creado, pero el nombre de la tabla no esta
acorde de lo aprendido en modelamiento, debería ser PERSONA y no PERSONAS, por
lo que borramos la tabla.
Ingresa:
DROP TABLE PERSONAS;
Luego haz clic en PLAY para ejecutar el Script
Podemos ver que indica que
la tabla fue borrada con éxito.
Luego borramos la letra “S” del script anterior para que quede PERSONA y volvemos a
ejecutar el Script.
Borrar la S de PERSONAS
Luego haz clic en PLAY para ejecutar el Script
-
www.iplacex.cl
29
SEMANA 5
Una persona también tiene un apellido paterno, un apellido materno y a veces una
mascota, pero en vez de borrar la tabla y crearla de nuevo con estos campos, vamos a
alterar la tabla agregándolos.
Recuerda que solo se puede alterar la tabla agregando un campo a la vez, además al
final de cada comando de alter table debe ir un punto y coma para señalar que ahí
termina este comando y que el próximo comando es ajeno a el.
Para esto escribimos:
ALTER TABLE PERSONA ADD apellido_paterno VARCHAR2 (20);
Luego haz clic en PLAY para ejecutar el Script
-
www.iplacex.cl
30
SEMANA 5
Vemos que se ha alterado la tabla persona, ahora agregaremos el campo
apellido_materno.
Para esto escribimos:
ALTER TABLE PERSONA ADD apellido_materno VARCHAR2 (20);
Luego haz clic en PLAY para ejecutar el Script
Vemos que se ha alterado la tabla, ahora agregaremos el campo mascota.
Para esto escribimos:
ALTER TABLE PERSONA ADD mascota VARCHAR2 (20);
Luego haz clic en PLAY para ejecutar el Script
-
www.iplacex.cl
31
SEMANA 5
Vemos que se ha alterado la tabla persona correctamente.
Como el rut no es un número, debido al guion debemos cambiar el tipo de dato de
NUMBER a VARCHAR2.
Para esto escribimos:
ALTER TABLE PERSONA MODIFY rut VARCHAR2 (15);
Luego haz clic en PLAY para ejecutar el Script
-
www.iplacex.cl
32
SEMANA 5
Vemos que se ha alterado la tabla persona correctamente y el tipo de dato ha cambiado.
Un campo de clave primaria no puede ser nulo, es por eso por lo que agregamos la
propiedad NOT NULL al campo rut.
Para esto escribimos:
ALTER TABLE PERSONA MODIFY rut NOT NULL;
Luego haz clic en PLAY para ejecutar el Script
-
www.iplacex.cl
33
SEMANA 5
Se ha alterado la tabla PERSONA.
Haz terminado de trabajar con procedimiento almacenado y función almacenada.
Los puntos revisados en esta cápsula de aprendizaje fueron:
Paso a paso en creación de usuarios.
Paso a paso en creación de privilegios y roles.
Paso a paso para la creación y manejo de objetos con sentencias DDL.
¡Bien hecho!
-
www.iplacex.cl
34
SEMANA 5