Sei sulla pagina 1di 60

Almacenamiento de informacin

Cristian Rojas Prez

Imagine el siguiente escenario


El instituto de informtica posee varios alumnos. Cmo llevaran un registro de estos?


Archivo de texto Plantilla de Excel Correo electrnico Google Drive Dropbox Sitio Web

Cmo la compatira?

Plantilla electrnica

Nuevos requerimientos

Es necesario identificar los alumnos inscritos por asignatura Cmo haran esto?

En otra hoja de la planilla electrnica agregar esta informacin Incorporar una columna en el listado de alumnos que haga referencia al curso que corresponda

Nuevos requerimientos

Nuevos requerimientos

Almacenar las notas de los alumnos Registrar asistencia Registrar profesores y cursos por ramo Dada la cantidad de alumnos y cursos es necesario que varias personas puedan trabajar en los archivos Respaldo de la informacin Estadsticas de los cursos

Problemas del uso de archivos para almacenamiento de informacin


Acceso concurrente A medida que crecen las entidades se vuelve difcil estructurar la informacin Validacin de los datos de entrada para evitar errores de usuarios Integridad de la informacin (si se borra un curso, Qu pasa con sus alumnos?)

Bases de datos

Son un conjunto organizado de informacin La data es organizada para modelar aspectos relevantes de la realidad

Disponibilidad de cuartos en un hotel La relacin entre alumnos y asignaturas etc

Bases de datos

Cumplen con un conjunto de caractersticas que facilitan la gestin de la informacin

Atomicidad: es la propiedad que asegura que la operacin se ha realizado o no, y por lo tanto ante un fallo del sistema no puede quedar a medias. Consistencia: Integridad. Es la propiedad que asegura que slo se empieza aquello que se puede acabar. Por lo tanto se ejecutan aquellas operaciones que no van a romper las reglas y directrices de integridad de la base de datos. La propiedad de consistencia sostiene que cualquier transaccin llevar a la base de datos desde un estado vlido a otro tambin vlido. Aislamiento: es la propiedad que asegura que una operacin no puede afectar a otras. Esto asegura que la realizacin de dos transacciones sobre la misma informacin sean independientes y no generen ningn tipo de error. Durabilidad: es la propiedad que asegura que una vez realizada la operacin, sta persistir y no se podr deshacer aunque falle el sistema.

Cumpliendo estos 4 requisitos un sistema gestor de bases de datos puede ser considerado ACID Compliant.

Cules conocen?

Componentes de una base de datos


Tablas (Tables) Campos (Columns) Tipos de datos (Types) Filas (Rows) Llaves primarias (Primary Keys) Relaciones (Foreign Keys) etc

Tablas

Campos

Anlogo a las columnas de una plantilla excel Se definen por su tipo de dato:

Texto Numrico Booleano Fecha Etc

Filas

Anlogo a las filas del Excel Son los registros de la base de datos. Cada uno representa a un dato nico de una tabla Tambin se conocen como tuplas

Llaves primarias

Es un campo o una combinacin de ellos que identifican de manera nica a una tabla Un ejemplo de esto podra ser el RUT Usualmente son de tipo numrico y son administrados por la Base de datos

Structured Query Language (SQL)

Lenguaje declarativo para acceder y manipular bases de datos


Consultas (SELECT) Crear registros (INSERT) Actualizar datos (UPDATE) Borrar datos (DELETE)

CREATE TABLE

CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type, .... )

CREATE TABLE

CREATE TABLE Persons (P_Id int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) )

INSERT

INSERT INTO table_name VALUES (value1, value2, value3,...) INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)

INSERT

INSERT INTO Persons VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger')

INSERT

INSERT INTO Persons (P_Id, LastName, FirstName) VALUES (5, 'Tjessem', 'Jakob')

SELECT

SELECT column_name(s) FROM table_name SELECT * FROM table_name

SELECT

SELECT LastName,FirstName FROM Persons

SELECT * FROM Persons

Base de datos ligera No necesita configuracin inicial No necesita servidores Prcticamente es una librera que gestiona el acceso a un archivo

Pysqlite

Librera de python para utilizar SQLite


import sqlite3 conn = sqlite3.connect('example.db') c = conn.cursor() c.execute('''CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)''') c.execute("INSERT INTO stocks VALUES ('2006-0105','BUY','RHAT',100,35.14)")

Pysqlite

t = ('RHAT') c.execute('SELECT * FROM stocks WHERE symbol=?', t) print c.fetchone() purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00), ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00), ('2006-04-06', 'SELL', 'IBM', 500, 53.00), ]

c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)

Pysqlite

Iterar sobre varios elementos

For row in c.execute('SELECT * FROM stocks ORDER BY price'):

print row

Ejercicio

Cree en una base de datos la tabla alumnos Qu campos debera tener una tabla de este tipo?

Alumnos

RUT (text as Primary key) Nombres (text) Apellidos (text) Correo (text)

Ejercicio

Cree una funcin que lea el archivo alumnos.csv y cargue la informacin a la tabla previamente creada. Tips

Use la librera de python csv

http://docs.python.org/2/library/sqlite3.html

Tarea prctica PyGTK

http://www.pygtk.org/pygtk2tutorial/index.html Cree una aplicacin en PyGTK que lea la base de datos de alumnos y los muestre en una pantalla Esta aplicacin debe tener un formulario que permita agregar un alumno a la base de datos Si realizan lo anterior optan al 6,0 Entrega: Jueves 2 de Mayo a las 23:59

1 punto de descuento por hora de atraso 0,5 de descuento si el grupo no es de 3 personas Implementen el poder seleccionar un alumno y editar su informacin Eliminar alumnos Validacin del RUT en los formularios

Grupos de 3 personas

Adicional: (Para optar al 7,0)


Almacenamiento de informacin

Cristian Rojas Prez

Imagine el siguiente escenario


El instituto de informtica posee varios alumnos. Cmo llevaran un registro de estos?


Archivo de texto Plantilla de Excel Correo electrnico Google Drive Dropbox Sitio Web

Cmo la compatira?

Plantilla electrnica

Nuevos requerimientos

Es necesario identificar los alumnos inscritos por asignatura Cmo haran esto?

En otra hoja de la planilla electrnica agregar esta informacin Incorporar una columna en el listado de alumnos que haga referencia al curso que corresponda

Nuevos requerimientos

Nuevos requerimientos

Almacenar las notas de los alumnos Registrar asistencia Registrar profesores y cursos por ramo Dada la cantidad de alumnos y cursos es necesario que varias personas puedan trabajar en los archivos Respaldo de la informacin Estadsticas de los cursos

Problemas del uso de archivos para almacenamiento de informacin


Acceso concurrente A medida que crecen las entidades se vuelve difcil estructurar la informacin Validacin de los datos de entrada para evitar errores de usuarios Integridad de la informacin (si se borra un curso, Qu pasa con sus alumnos?)

Bases de datos

Son un conjunto organizado de informacin La data es organizada para modelar aspectos relevantes de la realidad

Disponibilidad de cuartos en un hotel La relacin entre alumnos y asignaturas etc

Bases de datos

Cumplen con un conjunto de caractersticas que facilitan la gestin de la informacin

Atomicidad: es la propiedad que asegura que la operacin se ha realizado o no, y por lo tanto ante un fallo del sistema no puede quedar a medias. Consistencia: Integridad. Es la propiedad que asegura que slo se empieza aquello que se puede acabar. Por lo tanto se ejecutan aquellas operaciones que no van a romper las reglas y directrices de integridad de la base de datos. La propiedad de consistencia sostiene que cualquier transaccin llevar a la base de datos desde un estado vlido a otro tambin vlido. Aislamiento: es la propiedad que asegura que una operacin no puede afectar a otras. Esto asegura que la realizacin de dos transacciones sobre la misma informacin sean independientes y no generen ningn tipo de error. Durabilidad: es la propiedad que asegura que una vez realizada la operacin, sta persistir y no se podr deshacer aunque falle el sistema.

Cumpliendo estos 4 requisitos un sistema gestor de bases de datos puede ser considerado ACID Compliant.

Cules conocen?

Componentes de una base de datos


Tablas (Tables) Campos (Columns) Tipos de datos (Types) Filas (Rows) Llaves primarias (Primary Keys) Relaciones (Foreign Keys) etc

Tablas

Campos

Anlogo a las columnas de una plantilla excel Se definen por su tipo de dato:

Texto Numrico Booleano Fecha Etc

Filas

Anlogo a las filas del Excel Son los registros de la base de datos. Cada uno representa a un dato nico de una tabla Tambin se conocen como tuplas

Llaves primarias

Es un campo o una combinacin de ellos que identifican de manera nica a una tabla Un ejemplo de esto podra ser el RUT Usualmente son de tipo numrico y son administrados por la Base de datos

Structured Query Language (SQL)

Lenguaje declarativo para acceder y manipular bases de datos


Consultas (SELECT) Crear registros (INSERT) Actualizar datos (UPDATE) Borrar datos (DELETE)

CREATE TABLE

CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type, .... )

CREATE TABLE

CREATE TABLE Persons (P_Id int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) )

INSERT

INSERT INTO table_name VALUES (value1, value2, value3,...) INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)

INSERT

INSERT INTO Persons VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger')

INSERT

INSERT INTO Persons (P_Id, LastName, FirstName) VALUES (5, 'Tjessem', 'Jakob')

SELECT

SELECT column_name(s) FROM table_name SELECT * FROM table_name

SELECT

SELECT LastName,FirstName FROM Persons

SELECT * FROM Persons

Base de datos ligera No necesita configuracin inicial No necesita servidores Prcticamente es una librera que gestiona el acceso a un archivo

Pysqlite

Librera de python para utilizar SQLite


import sqlite3 conn = sqlite3.connect('example.db') c = conn.cursor() c.execute('''CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)''') c.execute("INSERT INTO stocks VALUES ('2006-0105','BUY','RHAT',100,35.14)")

Pysqlite

t = ('RHAT') c.execute('SELECT * FROM stocks WHERE symbol=?', t) print c.fetchone() purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00), ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00), ('2006-04-06', 'SELL', 'IBM', 500, 53.00), ]

c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)

Pysqlite

Iterar sobre varios elementos

For row in c.execute('SELECT * FROM stocks ORDER BY price'):

print row

Ejercicio

Cree en una base de datos la tabla alumnos Qu campos debera tener una tabla de este tipo?

Alumnos

RUT (text as Primary key) Nombres (text) Apellidos (text) Correo (text)

Ejercicio

Cree una funcin que lea el archivo alumnos.csv y cargue la informacin a la tabla previamente creada. Tips

Use la librera de python csv

http://docs.python.org/2/library/sqlite3.html

Tarea prctica PyGTK

http://www.pygtk.org/pygtk2tutorial/index.html Cree una aplicacin en PyGTK que lea la base de datos de alumnos y los muestre en una pantalla Esta aplicacin debe tener un formulario que permita agregar un alumno a la base de datos Si realizan lo anterior optan al 6,0 Entrega: Jueves 2 de Mayo a las 23:59

1 punto de descuento por hora de atraso 0,5 de descuento si el grupo no es de 3 personas Implementen el poder seleccionar un alumno y editar su informacin Eliminar alumnos Validacin del RUT en los formularios

Grupos de 3 personas

Adicional: (Para optar al 7,0)

Potrebbero piacerti anche