1 / 139

Conceptos de Bases de Datos Relacionales Parte 1

Conceptos de Bases de Datos Relacionales Parte 1. Servidor de Bases de Datos. Servidor que es capaz de administrar múltiples bases de datos. Base de Datos. Una base de datos relacional almacena conjuntos de datos que están relacionados unos con otros.

reed-dale
Télécharger la présentation

Conceptos de Bases de Datos Relacionales Parte 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Conceptos de Bases de Datos RelacionalesParte 1

  2. Servidor de Bases de Datos • Servidor que es capaz de administrar múltiples bases de datos

  3. Base de Datos • Una base de datos relacional almacena conjuntos de datos que están relacionados unos con otros. • Las Tablas son la estructura primaria de una base de datos relacional. • Las tablas están constituidas por: • Columnas (columns) • Filas (rows)

  4. Objetos de una Base de Datos • Tables, almacena datos • Views, simplifica y/o restringe acceso a datos • Indexes, mejora acceso a la base de datos • Defaults, define valores por omisión • Rules, restinge valores que se aceptan • Stored procedures, comandos sql y de control con llamado explícito • Triggers, comandos sql y de control con llamado implícito

  5. SQL (Structured Query Language) • SQL lenguaje usado para definir, manipular, y controlar bases de datos relacionales • Definido por ANSI (American National Standards Institute) • Comandos SQL se pueden dividir en tres categorías: • DDL (Data definition language) • create, alter, drop • DML(Data manipulation language) • select, insert, update, delete • DCL(Data control language) • grant, revoke

  6. Extensiones SQL • Son cosas adicionales al standard ANSI SQL • Están diseñadas para simplificar la administración de las bases de datos • FIPS flagger • Útiles para los usuarios que solamente usanANSI-compliant SQL • Envía mensajes a los usuarios cuando ejecutan un comando que no cumpla • Sintaxis: • set fipsflagger { on | off }

  7. System Procedures • Procedimientos del Sistema instalados automáticamente que facilitan la manipulación de los Servidores de Bases de Datos • En el caso de Sybase y SQL-servidor, todos los system procedures comienzan con con “sp_” • Ejemplos: • sp_help da información de todos los objetos en una base de datos • sp_who da información de los usuarios que están trabajando en el servidor de bases de datos

  8. Relación Cliente/Servidor • Cliente – Programa que acepta requerimientos de un usuario y los envía a un servidor; también recibe respuestas del servidor y se las muestra al usuario • Servidor – Programa que procesa requerimientos del cliente y le retorna resultados

  9. Conexión al Servidor • Para conectarse a un servidor a través de un cliente se necesita: • Un login válido • Un password válido • Una conexión simple se conoce como “session” • Base de datos default: • Base de datos que se coloca en uso cuando un usuario se conecta al servidor • Determinada según el perfil del usuario • Características fijadas por el Administrador

  10. Funcionalidad en el Cliente • Un cliente debe proporcionar las siguientes facilidades: • Iniciar el cliente y conectarse al servidor • Ejecutar comandos y batches • Navegar por una base de datos • Editar comandos • Crear y ejecutar scripts • Ejemplos: • Cliente isql • Cliente Advantage • Cliente Oracle • Cliente Manager de Microsoft

  11. Creación de Tablas

  12. Diseño de Tablas • Una Tabla es un objeto de base de datos que almacena datos en filas y columnas • Antes de crear una tabla, se debe diseñar su estructura: • 1. Darle nombre a la tabla y a cada columna • 2. Seleccionar un tipo de dato para cada columna • 3. Escoger las propiedades de cada columna

  13. Datatype • Un tipo de datos (datatype) es un atributo asignado a una columna que especifica el tipo de información que puede almacenarse en esa columna

  14. Seleccionar Datatypes • Para seleccionar el datatype de una columna: • 1. Determinar el conjunto posible de valores • 2. Determinar la precisión requerida • 3. Encontrar el datatype que: • Pueda guardar todos los posibles valores • Proporcione la exactitud y precisión requeridas • Use eficientemente el almacenamiento • Facilite el futuro crecimiento

  15. Categorías de Datatypes • Números exactosNúmeros con exactitud y precisión predecibles • Números aproximadosNúmeros con valores dependiendo de exactitud y precisión del almacenamiento • MoneyValores para pesos • Date y timeValores de fechas y horas • CharacterPara strings caracteres • BinaryInformación binaria (como imágenes, video y bits)

  16. Ejemplos de Datatypes por Categorías • Números exactosinteger, numeric (p,s), decimal (p,s) • Números aproximadosfloat (p), real, double precision (dependientes de máquina) • Moneymoney • Date y timedatetime • Characterchar (n), varchar (n), text • Binarybit, binary, varbinary, image

  17. Datatypes definidos por el Usuario • Un datatype definido por el usuario es un datatype creado por el usuario de un datatype del sistema • Muy útil para asegurar consistencia de múltiples columnas que almacenan el mismo conjunto de valores

  18. Propiedades de las Columnas • Una columna puede tener una de las siguientes propiedades: • NULL • NOT NULL • IDENTITY • Si no se especifica, generalmente se asume NOT NULL

  19. Valores tipo NULL • Un NULL representa un valor desconocido o que no aplica • Para valores numéricos, NULL no es igual a 0 • Para caracteres, NULL no es igual a '' '' (caracter en blanco) • NULL no se considera considera menor que, mayor que, o igual a cualquier otro valor • Dos NULL no se consideran iguales

  20. Propiedades de NULL • Una columna con la propiedad NULL permite NULLs • Esto se conoce como nullable column • Una columna con la propiedad NOT NULL no permite NULLs • Una columna que no se le especifique esta propiedad asume que permite NULLs

  21. Propiedad IDENTITY • La propiedad IDENTITY hace que el sistema asigne automáticamente valores únicos a cada fila • Cuando se insertan datos en una tabla, el servidor automáticamente asigna un número secuencial a la columna que tiene la propiedad de IDENTITY

  22. Reglas para columnas con IDENTITY • Sólo puede existir una por tabla • Debe de ser de tipo numérico sin posiciones decimales • Ejemplo: numeric(5,0) • No se puede actualizar • No acepta valores tipo NULL • Inicia por default en 1 • Se puede asignar un valor de arranque

  23. Crear Tablas • Sintaxis Simplificada para create : • CREATE TABLE table_name ( • column_namedatatype[ NULL | NOT NULL | IDENTITY ] , • ... • column_namedatatype[ NULL | NOT NULL | IDENTITY ] )

  24. Crear Tabla create table empleado ( emp_id numeric(4,0) IDENTITY, apellido varchar(30) NOT NULL, nombre varchar(30) NOT NULL, e_mail char(6) NULL, departamento typ_ch_deptid )

  25. Borrar Tablas • Sintaxis Simplificada para drop: • DROP TABLE table_name • Ejemplo: • drop table empleado

  26. Recomendaciones para desarrollo • Crear todos los objetos (incluyendo tablas) en scripts y grabarlos • Facilita la recreación de los objetos • Sirve como material permanente de referencia • Especialmente importante para tablas • Especificar una propiedad para cada columna • Usar tipos de datos de usuario para columnas que almacenen el mismo conjunto de valores

  27. Cláusula default • La cláusuladefaulthace que el servidor dé un valor cuando el valor no se proporciona explícitamente al hacer un insert • Sintaxis Simplificada : • create tabletable_name ( • column_namedatatype default default_value [property], • ...)

  28. Modificación de cláusulasdefault • Sintaxis Simplificada: • alter tabletable_name • replace column_namedefaultdefault_value • A pesar de que la sintaxis usa la palabra “replace”, el comando alter table se puede usar para añadir cláusulas default a una tabla

  29. Ejemplo de modificación de cláusulas default alter table publica replace ciudad default “Cali" alter table publica replace depto default “Valle”

  30. Tablas y Permisos • Para permitir que otros usuarios puedan consultar, manipular los datos o hacer referencia a una tabla, se deben dar permisos • Sintaxis Simplificada: • grant { select | insert | update | delete | reference | all } • on table_name • to user_list • Ejemplo: • grant select on empleado to juan, sandra, pablo

  31. Adición de Columnas • Después de creada una tabla, se pueden añadir columnas • Algunos DBMS no permiten borrar directamente una columna de una tabla • Para borrar una columna, se debe borrar y volver a crear la tabla • Sintaxis para añadir una columna a una tabla: • alter table table_name • add column_namedatatype NULL • [, column_namedatatype NULL ...] • Todas las columnas añadidas deben tener la propiedad NULL.

  32. Adicionar Columnas alter table editor add address varchar(40) NULL, country varchar(20) NULL

  33. Copiar Tablas • select into es una extensión que se usa para crear una copia de una tabla existente

  34. Sintaxis de select into • Sintaxis Simplificada : • selectcolumn_listintonew_table_name • from old_table_name • [where condition]

  35. Ejemplos de select into • Ejemplo de copiado de todas las columnas: • select * into titles_copy • from titles • Ejemplo de copiado de algunas columnas : • select title_id, title, type • into titles_copy • from titles

  36. Ejemplos de select into • Ejemplo que copia algunos datos: • select * into titles_copy • from titles • where price > $12.00 • Ejemplo que no copia datos: • Porque la cláusula where siempre da falso, se copia la estructura de la tabla pero no sus datos • select * into titles_copy • from titles • where 1 = 2

  37. DMLes uno de los tres grupos principales de sentencias SQL Comprende cuatro sentencias: insertañade datos a una tabla updateactualiza datos existentes en una tabla deleteborra datos de una tabla selectconsulta datos de una tabla Data Manipulation Language

  38. Sintaxis para insert • sintaxis Simplificada: insert [into] table_name [(column_list)] { values (value_list) | select_statement } • Ejemplos: insert into editor values ("736", “Nuevas BD", “Pasto", “Nariño") insert into editor (nombre, pub_id) values (“Prensa Actual", "2003”)

  39. Extensión SQL para insert • Se pueden insertar múltiples filas en un solo insert utilizando un select embebido • Ejemplo: insert into editor select * from pub..editor • Las columnas en las que se van a insertar datos deben tener los mismos tipos de datos que resulten de las columnas del query

  40. Sintaxis para update • Sintaxis Simplificada : updatetable_name set column1 = { expression | select_statement } [, column2 = { expression | select_statement } ...] [fromtable_list] [wherecondition] • Ejemplos: update titles set price = price * $1.25 update authors set address = "1224 Mason Ct.", phone = "415 773-2882" where au_id = "427-17-2319"

  41. Extensión para update • Se pueden encadenar condiciones en la cláusula where de un update • Ejemplo: update titulo set precio = precio * $0.90 from titulo t, editor p where t.pub_id = p.pub_id and p.state = “Nariño"

  42. Extensión case • La expresión case es una extensión SQL que puede estar embebida en un update • case permite el retorno condicional de un valor de dos o más posibles • Dos estructuras sintácticas para case • Basada en expresiones • Basada en condiciones

  43. Sintaxis para when expression • Sintaxis: caseexpression whenexpressionthenexpression [whenexpressionthenexpression ...] [elseexpression] end • Ejemplo: update titulo set tipo = case tipo when "mod_cook" then "modcook" when "trad_cook" then "tradcook" when "popular_comp" then "popularcomp" end where tipo in ("mod_cook", "trad_cook", "popular_comp")

  44. Sintaxis para when condition • Sintaxis: case whenconditionthenexpression [whenconditionthenexpression ...] [elseexpression] end • Ejemplo: update titulo set precio = case when tipo = "business" then precio * $1.03 when tipo = "mod_cook" then precio * $1.05 when tipo = "trad_cook" and pub_id = "0736" then precio * $1.07 when tipo = "trad_cook" and pub_id = "0877" then precio * $1.10 else precio end

  45. Sin la cláusula else • Si ninguna de las condiciones del case se cumple y no existe un else, case retorna NULL • Ejemplo: update titulo set precio = case tipo when "trad_cook" then precio * 1.07 when "mod_cook" then precio * 1.03 when "business" then precio * 1.05 end

  46. Reglas para case • Solo puede retornar valores • A diferencia del case de la mayoría de los lenguajes de programación, el case del SQL no ejecuta sentencias • Se puede utilizar en cualquier sitio donde se pueda escribir una expresión • Debe retornar un valor compatible con el tipo de dato • Al menos una cláusula (la cláusula when o la cláusula else) deben retornar un valor no NULL

  47. Sintaxis para delete • Sintaxis Simplificada: delete [from] table_name [wherecondition] • Ejemplos: delete from editor delete from titulo where tipo = "business" delete from autor where au_fname = "Luis" and au_lname = “Caicedo"

  48. Extensión para delete • Se pueden encadenar condiciones en la cláusulawhere de un delete • Sintaxis simplificada : delete table_name from table_list [where join_condition] • Ejemplo delete titles from titles t, publishers p where t.pub_id = p.pub_id and p.state = "CA"

  49. truncate table • truncate tableborra todas las filas de una tabla • La operación se ejecuta más rápido que la correspondiente sentencia delete • El comamdo no se puede usar para borrar algunas filas de la tabla • Sintaxis simplificada: truncate table table_name • Ejemplo: truncate table publishers

  50. Registro de Transacciones (Log) • El registro de transacciones se utiliza para recuperar los datos en el evento de un error del usuario o falla del sistema • Actúa ante cadainsert, update, y delete • Algunas operaciones no se registran • Ejemplo de operaciones sin registro: • select into • truncate table

More Related