Custom Search
Bloggers Activos
Duda con MySQL der_teufel
Large hadron rap chilicuil
Reto thot
ieee80211 en kernel 2.6.25-custom chilicuil
Crea UNAM primer auto híbrido mexicano tonathiu
No mas pupilas madreadas en mononeurona, Stylish der_teufel
Secuestro oficial” contra luchadores sociales tonathiu
Ensayo: Cibernética Herramientas para la ecologia xhaman
¿Un hoyo negro "artificial" tragará a la tierra? der_teufel
Reto asarch
Last Download
Segunda Fundación
Segunda Fundación
Hug a Developer
vendaval
Second Ubuntu Developer Week!
xhaman
Squeeze
vendaval
Mari Carmen De Lara: Estreno Documental, Voces silenciadas
tonathiu
"Fragmentos de una memoria colectiva"
tonathiu
Grave fallo de seguridad en el protocolo BGP
chilicuil
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

3ero.Base de datos
Desde la redacción de Desarrollo, rnstux informa.  2008-07-22 12:18:12-05
Desarrollo
3
votos
VoteVote
Bueno continuamos con el tercero, a continuación una imagen de las 2 tablas de la "base de datos" , falta mucho por hacer pero vamos paso a paso, bien para los que hicieron su tarea debería haberles quedado mas o menos así, la sentencia de Lenguaje de Definición de Datos LDD.

CREATE TABLE Calificaciones(
       Calificacion_id VARCHAR(6),
       Parcial1 INTEGER NOT NULL,
       Parcial2 INTEGER NOT NULL,
       Parcial3 INTEGER NOT NULL,
       Parcial4 INTEGER NOT NULL,

       Parcial5 INTEGER NOT NULL,
       Num_control VARCHAR(6) NOT NULL, --Clave primaria de la tabla Alumno, debe ser el mismo tipo de dato y longitud.

       CONSTRAINT pkCalificacion_id PRIMARY KEY (Calificacion_id),
       CONSTRAINT fkNum_control FOREIGN KEY (Num_control) REFERENCES Alumnos

);


CONSTRAINT fkNum_control FOREIGN KEY (Num_control) REFERENCES Alumnos, me indica que:
Restricccion fkNum_control de tipo Clave Foranea de cual es (Num_control) que hace referencia a la tabla Alumnos, esta claro que este campo ya debe estar en la tabla Alumnos.

Hagan su tarea por que en base a la respuestas que haya a los post, asi se va a ir incrementando la cantidad y nivel de las explicaciones, pongan sus dudas criticas y sugerencias.Saludos!!!


 

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

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

Graficos realizados con: WWW SQL Designer
http://ondras.zarovi.cz/sql/
2.- asarch asarch
Time on 22/7/08

Chale, deberias de hacerlo como todo un hacker:

groff -pic graficos.pic > graficos.ps

No, ya en serio, mejor con XFig:

http://en.wikipedia.org/wiki/Xfig
3.- merix merix
Time on 23/7/08

Hola, primero de todo quiero pedir disculpas por este mensaje, pero expongo mi situación. Soy estudiante de informática, y tengo un examen de recuperación de SQL mañana. En mi curso hemos estudiado SQL Server y el año ha estado dividido así:

1º Trimestre: Modelo Entidad Relacion, Relacional

2º Trimestre: La orden Select, Triggers, etc

3º Trimestre: Oracle y Administración de SQL Server


Lo tengo todo aprobado salvo el 2º trimestre, que por motivos personales apenas pude asistir a clase con todo lo que supone eso. Lo iba a dejar por imposible y asumir a repetir curso, pero un compañero de clase parece ser que ha conseguido unas posibles preguntas que pueden salir en el examen. Mi pregunta es, ¿ Alguien podría ayudarme ? Sé que no está bien, que no es lo correcto, pero si lo he expuesto aquí es porque realmente estoy desesperado, de este examen depende que repita curso o no.

Lo siento mucho, pero no sabía que más podía hacer. Sea como sea, gracias por haber léido mi mensaje.
4.- rnstux rnstux
Time on 23/7/08

Pues en mi escela hay mucho en tu misma situación, pero como dices que tienes las posibles respuestas. Que pasa si te las cambian? Ademas como dices eres estudiante de informática, vas a llevar base de datos distribuidas y si no sabes SQL te la vas a pellizcar, yo que tu repetiria el curso lo digo por tu bien :).

Pero para que veas que buenos y generesos somos aquí pues pudes postear el las tablas con sus respectivas relaciones que bien podrian servir de ejercicio para los demas, ademas de unas consultas eh.Yo te ayudare en unas y las explicare para que tu solito hagas las demas.Ok?
5.- merix merix
Time on 23/7/08

Gracias por la respuesta. Ahora mismo buscaré eso. Debería repetir si, las otras asignaturas como redes o programación saco buenas notas, pero aquí se me atragantó esta parte. El problema fundamental es que no estudio en la universidad, estudio en un instituto un módulo de informática, es el nivel más alto que hay aquí antes de la carrera y este año mismo vuelvo para acabar el año que me queda de la carrera ( el motivo fundamentalmente es ecónomico, no podría pagar las dos cosas a la vez ) Lo dicho, ahora mismo voy a buscar un sitio donde colgar esto, muchas gracias :)
6.- merix merix
Time on 23/7/08

http://rapidshare.de/files/40064277/selects.pdf.html

Lo siento por usar esta página para colgar el archivo, pero no tenía nada más a mano.

El examen es más largo, aparte de eso hay preguntas de teoría o otras de como hacer insert o updates en las tablas, pero sólo he colgado eso porque lo otro lo sé hacer. Lo único que hay que hacer es indicar cómo harías los selects, no hay que hacer nada en el ordenador.

El otro examen de recuperación son 3 preguntas de 3 triggers, pero ahí sí que no tengo ni idea de por dónde empezar, así que por eso no lo he puesto.


Ahora te pondré algún selects que he intentado hacer, estoy muy perdido, pero como mínimo al menos no estoy en blanco como en el caso de triggers
7.- merix merix
Time on 23/7/08

Consulta que muestre el nombre del grupo que ha vendido mas copias de un disco:


select nombre from grupos where idgrupo = (select idgrupo from discos where max(copiasvendidas))


Mostrar el grupo y la media de copias vendidas por cada grupo siempre y cuando la media de copias sea superior a 20 000 000:

select nombre from grupos where idgrupo = ( select idgrupo from discos where avg(copiasvendidas) > 20 000 000


8.- merix merix
Time on 23/7/08

Consulta que muestre el máximo numero de copias que ha vendido un disco

select copiasvendidas from discos where max(copiasvendidas)
9.- rnstux rnstux
Time on 23/7/08

Esta muy fácil tu examen. :P

1-Consulta que muestre el nombre del grupo, número de componentes=
SELECT Nombre, NumeroComponentes FROM Grupos
de todos aquellos que no sean ni queen, ni aerosmith, ni the beatles
WHERE Nombre NOT IN('queen','aerosmith','beatles')--Aqui comparas que no se encuentre en la lista de paises que no quieres NOT IN
y además no sean españoles
AND Pais<>'España'; Que el pais no sea Igual a españa
todos ellos ordenados por nacionalidad.
ORDER BY Pais; Y listo :P

2- Esta muy fácil!!!La dejo para ti :D
3-Tambien para ti :D
4-Mostrar el grupo y la media de copias vendidas por cada grupo siempre y cuando la media de copias sea superior a 20 000 000..
Esta es la mas complicada..
Lo que necesitas saber ahora es que discos tienen una media Mayor a 20 000 000..Ahora sacamos el nombre del grupo y su media y despues solo mostraremos los grupos cuya media sea mayor a 20,000,000, es importate considerar el orden en que se ejecutan las clausulas voy a marcar cual se ejecuta primero.

5-SELECT Nombre, avg(CopiasVendidas)--Muestra el nombre y la media
1-FROM Discos,Grupos
2-WHERE Disco.idGrupo=Grupo.idGrupo--Aqui unimos las tablas.
3-GROUP BY Nombre--Agrupamos por nombre,para usar HAVING
4-HAVING avg(CopiasVendidas)>20000000; --Saca la media y verifica que sea mayor a la cantidad..

5-Se hace con la operacion UNION
6-Sacas la cantidad maxima de disco que se ah vendido..y luego esa cantidad la comparas con la cantidad de discos que vendio cada grupo..

Echale ganas la verdad estan muy faciles tus examens y mas para ser de recuperación, los de mi escuela estan mas perros eh involucran consultar 5 o mas tablas en una consulta:P..Saludos..Y registrate en la mononeurona


10.- merix merix
Time on 23/7/08

Voy a por la 5 ahora, lo he intentado hacer deduciendo un poco según las explicaciones del cuarto select:


Mostrar todos los artistas con sus discos ( si hay un artista sin disco también debe salir )


select nombre from grupos, discos where grupo.idgrupo = discos.idgrupo

Mi razonamiento es que selecciono el nombre de la tabla discos y grupos, para que salga el nombre de los artistas y discos. Con el where lo que busco es que el idgrupo de la tabla grupos y discos coincida, para que muestre los artistas con sus discos.


En el enunciado pone que si hay un artista sin disco también ha de salir, supongo que es una "trampa" del profesor para complicarlo un poquito más el select, pero no sé que hacer en este caso. Gracias por la ayuda y perdón si digo tonterías, pero como ves voy algo perdido >_<


P.D: Cuando acabe exámenes mañana me registraré, me lo comentó antes asarch en el canal de irc :p
11.- merix merix
Time on 23/7/08

El resto de selects me dijo un amigo que me ayudaba mañana, gracias de nuevo rnstux :P



Lo único que me quedan 2 preguntas de triggers y procedimientos almacenados que sí que no sé por donde cogerlas.


1 - En SQL Server si deseamos hacer una relación con integridad referencial..

a/ con borrado en cascada, ¿ Qué tenemos que hacer ?

Aquí el ejemplo que se me ocurre es cuando hacemos en una una CONSTRAINT la foreign key al final de la orden debemos poner on delete cascade. Me parece recordar q esto sirve para q si se borra un campo en una tabla principal se borren registros que tengan relacion en una tabla secundaria. es asi ?

b/ Y si la queremos hacer del tipo restinct ?

Esto si que ni idea O_o

2- Tenemos una tabla llamada socios ( decide tu los campos ), deseamos que los socios dados de baja (borrados ), pasen automáticamente a una tabla existente llamada bajassocios. Realiza y explica las ordenes pertinentes para que este hecho se produzca.


Aquí si que no sé ni por donde empezar.. Creo que se empezaba con CREATE PROCEDURE pero aquí voy peor que en selects.




Independientemente de que haya respuesta o no gracias de antemano, y lo siento por las molestias. Voy a dormir que es tarde aquí y tengo el examen pronto, mañana por la noche me registraré en la web, saludos gente :)
12.- rnstux rnstux
Time on 23/7/08

2-Así es: ON DELETE CASCADE, ON UPDATE CASCADE con esas instrucciones!..

2- Lee esto http://seminariosql.blogspot.com/2008/05/disparadores-triggers.html

Si pasas tu examen deberias postear tu historia de: Aprendiendo SQL en 24 horas XD.saludos!
13.- saidjose saidjose
Time on 23/7/08

Merix te deseo suerte en tu examen, puedes estudiar mucho y pasar, el ayudarte no significa que hagas trampa, me gusta tu actitud, de preguntar lo unico que podemos hacer es apoyarte, estudia, pregunta y ten curiosidad son las llaves del exito.

rnstux de nuevo felicidades, esta chido tu curso de BD.
14.- merix merix
Time on 24/7/08

rnstux, gracias, ahora me pongo a leer esto. En 4 horas tengo el examen, ya contaré que tal fue :D


saidjose, gracias por tu apoyo, daré todo a ver si puedo aprobar la parte de selects y triggers, es lo único ( y lo más importante ) que me queda por aprobar de SQL. A ver que tal va, cuando llegue a casa me registraré en la web y a dormir, que llevo más de un día despierto >_<

Add comment:

Captcha

Que estas haciendo?
vendavalvendaval está:
Saludando desde el Cyber de la esquina, por ahora no tengo internet =(
19 hours, 21 minutes ago

asarchasarch está:
http://sexyimagehost .com/show.php/669_ma thstrip.swf.html
1 day, 22 hours ago

der_teufelder_teufel está:
aaajaja, gachos, con razón vendaval tiene el trauma de sus dedos dislexicos xD
2 days, 4 hours ago

rnstuxrnstux está:
de nada der_teufel :D
2 days, 5 hours ago

rnstuxrnstux está:
Multiplicando Matrices :S
2 days, 5 hours ago

tonathiutonathiu está:
ummm yami yami pudin :-D
2 days, 9 hours ago

Que estuvimos haciendo >>
Chipotle Software

Uso OpenOffice.org
Una vez a la semana
Nunca
Uso otra ofimática
Todos los días
Una vez al mes
Rapiditas
Problemas de Lenguaje en niños
16150 lecturas
Anticoncepción de Emergencia
14119 lecturas
Sexualidad infantil y juvenil
11770 lecturas
Rompiendo cualquier clave WEP en unos pocos minutos
10152 lecturas
Sinapsis y exocitosis
9754 lecturas
Mi primer CakePHP, mmmmm cakeee
7238 lecturas
Evolución filética en las hepáticas
6879 lecturas
BASH y Primeros Comandos
5515 lecturas
CakePHP II Active Record
5411 lecturas
Interrupción de Embarazo
4637 lecturas
Add to Technorati Favorites

ir arriba
Los hombres se acercan a la filosofía, movidos por el asombro. Aristóteles

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

Too Cool for Internet Explorer