Custom Search
Bloggers Activos
Podcast feed with CakePHP 1.2 aarkerio
Hummers para el SNTE litosteel
Abusados con la extorsión telefónica tonathiu
No se si Reir o Llorar vendaval
Full text search engine aarkerio
Sigue con nosotros aarkerio
Hot and really brave aarkerio
La resistencia xhaman
Bug || Feature vendaval
A bajo nivel vendaval
Last Download
Segunda Fundación
Segunda Fundación
¿No que no tronabas, pistolita?
asarch
Cow Love
aarkerio
La UNAM sigue subiendo
aarkerio
Regálame tus ideas ¿sí?
tuanis
Para entender la crisis
aarkerio
¿P's no que era imposible?
aarkerio
Tu billete de 20 ya vale menos...¿Se acuerdan?
luzbel
Intrepid Ibex beta disponible!
der_teufel
La matanza dejó una huella muy significativa y no queremos que vuelva a suceder
tonathiu
"Estática" culpada por alterar votos en Columbia
pollotron
Google Groups Karamelo
Visit this group
GNU/Linux
GNU/Linux
Hacktivismo
Hacktivismo
Debian
Debian
NetBSD
NetBSD
WWW
WWW
Guia Linux
Guia Linux
Server Side
Server Side
Ofimatica
Ofimatica
Despabilando...
Despabilando...
Mundo Maya
Mundo Maya
Literatura
Literatura
Agora
Agora
Psicologia
Psicologia
Economia
Economia
Ambientalismo
Ambientalismo
Desarrollo
Desarrollo
Biologia
Biologia
The Hackers OS
The Hackers OS

Hacktivism

LinuxChix button

1er Micro-Howto, sobre Base de Datos.
Desde la redacción de Desarrollo, rnstux informa.  2008-07-21 13:49:53-05
Desarrollo
22
votos
VoteVote
Gracias al buen Asarch, me convenció de empezar con una serie de Micro-Howto's sobre Base de Datos, es muy recomendable que hayan leído los logs de las platica sobre BD, aquí los links,

http://www.mononeurona.org/users/entry/rnstux/1403
http://www.mononeurona.org/users/entry/rnstux/1409

Ahora como primer ejercicio vamos a crear la clásica base de datos para control escolar, y empezaremos con la relación.
Un alumno puede tener muchas calificaciones(1:N) y una calificación solo puede ser de un alumno(1:1).
Identificamos Entidades, Relaciones, Atributos, Llaves.

Entidad: Alumno
Atributos: Numero de control, Nombre, Apellido Paterno, Apellido Materno, Dirección, Teléfono, Carrera, Semestre, Grupo, Especialidad,Curp, etc..etc.

Clave Primaria: Numero de Control
Claves Foráneas: No tiene

Entidad: Calificaciones
Atributos: Identificador Calificación, Unidad 1, Unidad 2, Unidad 3, Unidad 4, Unidad 5..
Clave Primaria: Identificador Calificación
Claves Foráneas: Numero de Control.

Para hacerlo de manera profesional es necesario considerar el cuadro siguiente para la documentación de la base de datos.(Por cuestiones de espacio y didácticas no pondré todos los atributos)

Nombre de la tabla: Alumno

Objetivo: Almacenar datos de los alumnos del Instituto-

Llave Primaria: Num_Control

Llave Extranjera: Ninguna.


CAMPO

TIPO

TAMAÑO

OBSERVACIONES

Num_Control

Varchar

6

Almacena la clave que identifica al alumno

Nombre

Varchar

40


Apellidos

varchar

40


Direccion

Varchar

60


Telefono

Varchar

12


Carrera

Varchar

10

Almacena la Licenciatura o Ingeniera que cursa el alumno.

TOTAL


168


Es necesario hacer esto para todas las tablas de la base de datos, de tarea hacen la tabla para calificaciones.


Permalink:
http://www.mononeurona.org/news/display/2412

Reference: Abre Ventana
Buscar enlaces a esta noticia en Technorati | add to delicious | Enviar a Fresqui.com | meneame | barrapunto
1.- rnstux rnstux
Time on 21/7/08

Oops.Quedo mi grande la pinche tabla..Lo siento :$
2.- mandrake mandrake
Time on 21/7/08

Al blog :P
3.- asarch asarch
Time on 21/7/08

Ta bien asi.

Te felicito. Ojala y todo los demas huevones publicaran algo.

Jajaja :-P
4.- saidjose saidjose
Time on 21/7/08

Esta chída la explicación... Despues puedes juntar todo como un Mini howto para base de datos y publicarlo en Server Side de la mononeurona
5.- mandrake mandrake
Time on 21/7/08

Ups Asarch esa me dolio :(
6.- aarkerio aarkerio
Time on 22/7/08

Un tip: siempre es preferible usar columnas integer antes que varchar pues para la base de datos y el sistema los int son más ligeros y optimizados. El campo Num_Control si siempre va a ser un número puede ser int o smallint sobre todo si ese campo va a servir como llave primaria que son las "tuberías" por las cuales corren las búsquedas en la BD.

También a muchas personas les gusta crear llaves primarias compuestas pero eso a mi se me hace poco practico y más complejo, se puede evitar creando siempre el campo:

id serial PRIMARY KEY

en cada tabla para siempre saber que tenemos un index seguro y sin replicaciones.

Algunas personas crean el campo "teléfono" como int, pero eso crea problemas porque mucha gente (las secres po ejemplo) ponen guiones a los phones y ahí truena el insert.

En general en los frameworks como RoR o Django o CakePHP la convención es usar nombres en plural para las tablas.

Chido el post, SQL es muy sencillo y potente, sólo que en Linux no he econtrado una buena herramienta de diseño. En Windows hay programas donde creas el diseño y se genera el script SQL para crear las tablas en la BD que elijas.
7.- rnstux rnstux
Time on 22/7/08

Gracias por los tips Aarkerio, no soy un experto en base de datos, pero lo poco que se lo quiero compartir, algunas cosas sobre la tabla son por cuestiones didácticas por ejemplo:

Con respecto a los datos de tipo int es muy cierto, lo maneje asi por que muchos de los números de control en mi escuela comienza son del tipo: 08, 07, 06, y al extraer los dos primeros dígitos que representan el año en que ingreso es mas fácil obtenerlos, al igual que es mas fácil obtener la clave lada de un teléfono, bueno cuestion de diseño.

Con las claves compuestas estoy de acuerdo.

Claro trabajar con frameworks es muy chido, en el segundo post ya puse el nombre en plurar (Alumnos), faltaría que mi campo en lugar de ser numero de control fuera id.

Al igual que la tabla no se encuentra normalizada :P pero eso es tema de otro post :)

Gracias por los comentarios y espero sigas revisando y aportando en los siguientes que haga saludos!

Add comment:

Captcha

Que estas haciendo?
asarchasarch está:
El del puntero del mouse :-)
11 hours, 36 minutes ago

asarchasarch está:
http://media.fastcli ck.net/w/pc.cgi?mid= 268850&sid=13499
11 hours, 37 minutes ago

asarchasarch está:
aarkerio: ¿cómo se logra este efecto?:
11 hours, 37 minutes ago

der_teufelder_teufel está:
TheInquererES: La elevada demanda de OpenOffice 3 ha tirado su web
14 hours, 28 minutes ago

AlmsxAlmsx está:
recibiendo calificacion, espero 10 ;-)
15 hours, 21 minutes ago

AlmsxAlmsx está:
En clase de base de datos
15 hours, 21 minutes ago

Que estuvimos haciendo >>
Chipotle Software

Si pudieras pedirle al genio, le pedirías ser:
Super guapo
Super rico
Super inteligente
Super gracioso
Super mamón
Hígado indestructible
Rapiditas
Problemas de Lenguaje en niños
18242 lecturas
Anticoncepción de Emergencia
15775 lecturas
Sexualidad infantil y juvenil
12421 lecturas
Sinapsis y exocitosis
11155 lecturas
Rompiendo cualquier clave WEP en unos pocos minutos
11130 lecturas
Mi primer CakePHP, mmmmm cakeee
7818 lecturas
Evolución filética en las hepáticas
7691 lecturas
Interrupción de Embarazo
5963 lecturas
BASH y Primeros Comandos
5948 lecturas
CakePHP II Active Record
5867 lecturas
Add to Technorati Favorites

ir arriba
La envidia es una declaración de inferioridad. Napoleón

The Queen is here Mozilla Firefox The Best DataBase CakePHP Framework XHTML GNU Hacker Chipotle Software

Too Cool for Internet Explorer