SlideShare una empresa de Scribd logo
-5872325-8645520052118785138035007610228600001158240668020000-4135755336232500Universidad Nacional Autónoma de Honduras<br />UNAH<br />Facultad de Ingeniería<br />-513572443402200Departamento de Ingeniería en sistemas<br />Base de Datos II<br />Proyecto Colección de Mariposas<br />42379905334000Catedrático:<br />48858314635500Ing. Eduardo Gross<br />Integrantes:<br />Claudia Melissa Espinal20061007063<br />Juan José López20041008352<br />Sección:<br />14:01<br />5643563131937400-3370898350628500-10393691644082002966720349821500Tegucigalpa M.D.C. 6 de Diciembre del 2010<br />INDICE<br />Pág.<br />Introducción………………………………………………2<br />Objetivos…………………………………………………..3<br />Análisis completo del enunciado………………4<br />Modelo Conceptual…………………….……………5<br />Análisis de todos los tipos de entidad<br />Análisis de todos los tipos de interrelación<br />Modelo relacional……………………………………11<br />Generar cada tabla con todas las relaciones<br />Normalizar el modelo<br />Diccionario de datos<br />Construcción y el uso de la base de datos<br />Manipulación de la base de datos<br />Creación del programa<br />Conclusiones…………………………………..………26<br />INTRODUCCION<br />En el presente informe se documento la resolucion del segundo problema asignado en clase de Bases de Datos II, llamado “Colección de Mariposas”, se presentara desde la definicion del problema hasta la creacion de la base de datos  como una de las propuesta a la resolucion de este ejercicio.<br />Para este segundo ejercicio se seguira utilizadon el motor de bases de datos SQLServer 2005 y la plataforma de programacion Visual Studio.Net 2005.<br />OBJETIVOS<br />Análisis y resolución del problema que permita la construcción de un modelo entidad-relación y modelo conceptual.<br />Práctica de la manipulación de la base de datos a través de la realización de consultas.<br />Crear una aplicación que cumpla con todos los requerimientos presentados.<br />ANALISIS COMPLETO DEL ENUNCIADO<br />El ejercicio asignado nos plantea el problema de que se desea crear una base de datos en la cual se almacene información referente a las mariposas que son objeto de estudio como también lo son para pertenecer en una colección de estas. Se debe mantener información de las mariposas capturadas, fecha y lugar de captura del ejemplar así como la persona que ha hecho la captura.<br />Actualmente una de las principales tareas de los biólogos es el estudio de la población de las especies naturales que pueblan España, siendo uno de los insectos unos de los reinos más estudiados, y dentro de este, el orden de los lepidópteros, mariposas mas concretamente. <br />El problema da a conocer ciertos requisitos que se deberán cumplir para la realización del mismo.<br />Estos requisitos son los siguientes:<br />Se considera que un ejemplar de mariposa pertenece a una única especie. Una especie pertenece a un único género y un género a una única familia natural.<br />El nombre científico de la especie de mariposas es único, pero el nombre común que tiene una especie puede variar según la zona geográfica donde se encuentra la mariposa. Si bien dentro de una determinada zona el nombre común de una especie es único.<br />Ya sea para su observación o para formar parte de una colección, la mariposa ha de ser capturada primero. La captura de cada ejemplar la realiza solo una persona.<br />Una determinada persona solo puede ser propietaria de una colección, y los ejemplares de mariposa que pertenecen a esta colección  pueden haber sido capturados por otras personas.<br />Se desea mantener información de las familias, géneros y especies a las que pertenecen los ejemplares de mariposas, independientemente de que haya sido capturado algún ejemplar de los mismos.<br />Una mariposa solo puede pertenecer  a una colección y una colección estará al menos formada por un ejemplar de mariposa (como es lógico).<br />El nombre de una zona geográfica donde es capturado un ejemplar es único; es decir, se considera que no existen dos zonas geográficas con el mismo nombre; no siendo de interés mantener información añadida sobre los lugares en donde las mariposas son capturadas.<br />MODELO CONCEPTUAL<br />422551111186400663605317943pertenecepertenece435927544288NOMBRE_COMUN00NOMBRE_COMUNMODELO ENTIDAD-RELACION<br />1789430103505**3736340118110**3020695120015114390390169545tiene00tiene3971168128713434247030946700211485430797502046274195580057848532004005772053200990907415140335129349531496030238703225802077085127635ESPECIE00ESPECIE<br />436308525400**2447290819151126949401168400769951334645NOMBRE_CIENTIFICO00NOMBRE_CIENTIFICO21840691168400<br />295910107951146545530162501041731118745NOMBRE_ESPECIE00NOMBRE_ESPECIE1909555241575ID00ID-60325272415GENERO00GENERO<br />89408077530**6070609334501333456951910929418951910<br />2880050166980pertenecepertenece1431925302895pertenecepertenece2513803116205-99060115901GENERO00GENERO368935232741ID00ID1142365236220<br />71691553975115055870114300ID00ID4614545307340ZONA00ZONA53778152349500200025134536045529513208007167672949500-155575113665FAMILIA00FAMILIA<br />441007528892511823582256846captura0captura3077033270332Fue_capturado_en00Fue_capturado_en5121275844550-370840174321FAMILIA00FAMILIA200660258141ID00ID<br />18154651631950243903530480**1619250210820**4066540180340112922270228600**4359910208915ZONA_GEOGRAFICA00ZONA_GEOGRAFICA3590925203835176530219406ID00ID42672033083509105902051051885315217170EJEMPLAR00EJEMPLAR<br />2595245186055112204085577850230101816244002184060186364003983355615950-291769278765DNI00DNI-477520159716APELLIDOS00APELLIDOS-31335917145NOMBRES00NOMBRES215903256225035052012382501099539196998012802935877402938972587740<br />7308857556511190925323333ID00ID1414588212725FEC_CAPTURA00FEC_CAPTURA336552159007167673344680-198120183515PERSONA00PERSONA<br />178435202565112064051529610<br />2898140216535PARA00PARA24130335280<br />27260551193800017157702044700044894521590tiene00tiene<br />-41275027241500208280134620**3992576301625TIEMPO_OBSERVACION00TIEMPO_OBSERVACION474345053644ID_MARIPOSA00ID_MARIPOSA55391051403350-360045328295COLECCION00COLECCION<br />734695-4445114053840318770382206518542011-701040317831FEC_INICIO00FEC_INICIO17145-6350024303957344035272917335504260853225800748969199942843915202565005217795463550<br />-849546208805VALOR_ESTIMADO00VALOR_ESTIMADO-252730333071NOMBRE00NOMBRE410781529845MARIPOSA_OBSERVACION0MARIPOSA_OBSERVACION<br />15487653352800181292511303011175260114631ID00ID<br />133540526035**187942721703206610355651510426702501900160850049457MARIPOSA_COLLECCION0MARIPOSA_COLLECCION<br />42481593980pertenecepertenece1783715330200<br />201264632385PRECIO00PRECIO1911019186690ID_MARIPOSA00ID_MARIPOSA<br />ANALISIS DE TODOS LOS TIPOS DE ENTIDAD<br />Familia: es la entidad donde se prentende guardar la informacion del tipo de familia al que pertenece una mariposa, esta posee atributos como ser un id que identifica a la familia y un campo familia, el cual nos dice cual es la familia.<br />Especie: es la entidad donde se especifica o da a conocer la especie a la cual pertenece una mariposa, esta entidad tiene atributos como un id que sirve para identificar la especie y un campo llamado especie que muestra las especies existentes.<br />Genero: esta entidad muestra el genero al cual puede pertenecer una mariposa, tiene atributos como un id el cual identifica a cada uno de los generos existenntes, tambien esta el atributo genero el que especifica que tipo de genero es la mariposa.<br />Ejemplar: es la entidad que muestra cual es el ejemplar de mariposa existente ya que puede ser un ejemplar para colección o bien un ejemplar para observacion. Esta entidad tiene bien un atributo llamado id para identificar el ejemplar y otro atributo llamado fecha de captura que es la fecha en la que fue capturada la mariposa.<br />Zona_geografica: esta entidad muestra la zona geografica en la que fue la captura de la mariposa, tiene atributos como ser un id para identificar la zona y un campo llamado zona el cual muestra la zona de la captura.<br />Persona: esta entidad es la que refleja la persona quien realizo la captura de la mariposa, en esta se guarda los datos de la persona para ello tiene campos como ser un id para identificar a la persona como unica, un campo nombre que es el nombre de la persona, un campo apellidos que guarda los apellidos de la persona y un campo DNI que es el numero de identidad de la persona. <br />Colección: es la entidad para identificar la colección de mariposas existentes, tiene atributos como fecha de inicio para saber la fecha cuando inicio, un campo nombre el cual es el nombre de la colección, un atributo valor estimado que es el valor en dinero de cuanto es el precio de la colección y tambien tiene un id para identificar a la misma.<br />Mariposa_coleccion: es una entidad debil dado que sino existen ejemplares no existen mariposas para colección. Sirve para guardar todas aquellas mariposas que fueron capturadas y estan en una colección, tiene atributos como ser un id de la mariposa capturada y el precio de la misma.<br />Mariposa_observacion: es una entidad debil dado que sino existen ejemplares no existen mariposas para observacion. En esta entidad se guardan todas aquellas mariposas que solo son para observacion y tiene atributos como ser el id para identificar a la mariposa, y un tiempo de observacion que es el tiempo en que tiene a la mariposa para observarla y luego la dejan libre.<br />ANALISIS DE TODOS LOS TIPOS DE INTERRELACION<br />Es una relacion de uno a muchos<br />13131804064011300863097155**24168092876551243965287655333057594615GENERO00GENERO2031365101218434975144145FAMILIA00FAMILIA<br />187007574295pertenecepertenece<br />En la relacion muestra que en una familia puede existir o pertenecer muchos generos.<br />Es una relacion de uno a muchos<br />3079750228600**13843001720851121837652190753477260266700ESPECIE00ESPECIE392430243840GENERO00GENERO<br />1936750245110pertenecepertenece258762576835136334576835<br />En la relacion muestra que en un genero pueden existir o pertenecer muchas especies.<br />Es una relacion de uno a muchos<br />341566523368003089275270510**139382521399511467360290830ESPECIE00ESPECIE3475990300990EJEMPLAR00EJEMPLAR2166620259715<br />1955800318135pertenecepertenece256857572390139192081915<br />En la relacion muestra que en una especie pueden existir o pertenecer muchos ejemplares.<br />Es una relacion de muchos a uno<br />50038026416003179445231140111598295257810**23012402527303474085368935ZONA_GEOGRAFICA00ZONA_GEOGRAFICA548005327660EJEMPLAR00EJEMPLAR<br />1942465295275Fue_capturado_en00Fue_capturado_en160083580010<br />En la relacion muestra que muchos ejemplares fueron capturados en una zona geografica o bien en una zona geografica fueron capturados muchos ejemplares.<br />Es una relacion de muchos a uno<br />66294019431003364865158750111783715185420**734060245745EJEMPLAR00EJEMPLAR3655060185420PERSONA00PERSONA2384405179070<br />2281555275590captura0captura179133522860<br />La relacion muestra que muchos ejemplares son capturados por una persona o bien una mariposa solo puede ser capturada por una unica persona.<br />Es una relacion de muchos a uno<br />3593465286385PERSONA00PERSONA2461895292100535305308610COLECCION00COLECCION48260025273000<br />2373630339090tiene00tiene3302635-123190111721485-96520**1720215118745<br />La relacion muestra que muchos coleccionespueden ser de una persona o bien una persona puede tener muchas colecciones.<br />Es una relacion de muchos a uno<br />3533140238125112152650264795**27679652755902660652489200325755303530MARIPOSA_COLLECCION0MARIPOSA_COLLECCION<br />2578735305435pertenecepertenece20396201390653830955-4445COLECCION00COLECCION3778250-6032500<br />La relacion muestra que muchos coleccionespueden ser de una persona o bien una persona puede tener muchas colecciones. <br />Es una relacion de muchos a muchos<br />266382516192500279781093980NOMBRE_COMUN00NOMBRE_COMUN<br />3627755203835111647825193040112830194259080**2214245249555**3914775326390ZONA_GEOGRAFICA00ZONA_GEOGRAFICA683895327660ESPECIE00ESPECIE2477770255270<br />16059151111250<br />238696555880tiene0tiene<br />La relacion muestra que una especie tiene muchos nombres comunes en muchas zonas especificas. <br />Generalización: relación de uno a uno<br />195516526606502026285317500EJEMPLAR00EJEMPLAR<br />167259021653500<br />25317456096011<br />15182851524011318706599695101208915320040MARIPOSA_COLLECCION0MARIPOSA_COLLECCION14922526543002974340414655MARIPOSA_OBSERVACION0MARIPOSA_OBSERVACION2920365362585<br />Nos muestra que una mariposa_coleccion y una mariposa_observacion son un tipo de ejemplar que hay y estos tipos van a tener todos los atributos de la entidad ejemplar aparte de sus propios atributos que los diferencian uno del otro.<br />La relacion es de uno a uno dado que un ejemplar solo puede ser de mariposa_coleccion o mariposa_observacion.<br />MODELO RELACIONAL<br />DIAGRAMA RELACIONAL ANTES DE NORMALIZAR<br />291084047097952910840487172034347154490720786765449072078676542811701920240539559517106904814570-2990865576570-2990865033645-2990852252344-2990852252345786765203327026441404224020-895364376420121539019856457010403700145-8953537858701920240312864519202403281045351091527000202063115270002013392153128645-38113328670-38102157094-895353785870-895352357120-8953523571201215390203327012153902700020012153902557145206311520332700033204152033270-895352157095-895351814195-80010181419570104014617700032537401461770-8001011760200-800101576070-80010117602063436592837063436533782001539240928370-80010499745-895361061720-89535499745628655166995Mariposa_observacion(id_mariposa, tiempo_observacion)00Mariposa_observacion(id_mariposa, tiempo_observacion)533404576445Mariposa_coleccion(id_mariposa, precio, id_coleccion)00Mariposa_coleccion(id_mariposa, precio, id_coleccion)628653490595persona(id, nombres, apellidos, DNI)00persona(id, nombres, apellidos, DNI)533402938145Nombre_comun(id_especie,id_ zona, nombre_comun)00Nombre_comun(id_especie,id_ zona, nombre_comun)533402357120Zona_geografica(id, zona)00Zona_geografica(id, zona)533404033520coleccion(id, nombre, valor_estimado, id_dueno, fec_inicio)00coleccion(id, nombre, valor_estimado, id_dueno, fec_inicio)533401814195ejemplar(id, id_capturador, id_zona, fec_captura, id_especie,  para)00ejemplar(id, id_capturador, id_zona, fec_captura, id_especie,  para)533401242695especie(id, nombre_especie,  nombre_cientifico, id_ genero)0especie(id, nombre_especie,  nombre_cientifico, id_ genero)53340728345genero(id,  genero, id_ Familia)0genero(id,  genero, id_ Familia)53340166370Familia(id, Familia)0Familia(id, Familia)<br />DIAGRAMA RELACIONAL NORMALIZADO<br />291084047097952910840487172034347154490720786765449072078676542811701920240539559517106904814570-2990865576570-2990865033645-2990852252344-2990852252345786765203327026441404224020-895364376420121539019856457010403700145-8953537858701920240312864519202403281045351091527000202063115270002013392153128645-38113328670-38102157094-895353785870-895352357120-8953523571201215390203327012153902700020012153902557145206311520332700033204152033270-895352157095-895351814195-80010181419570104014617700032537401461770-8001011760200-800101576070-80010117602063436592837063436533782001539240928370-80010499745-895361061720-89535499745628655166995Mariposa_observacion(id_mariposa, tiempo_observacion)00Mariposa_observacion(id_mariposa, tiempo_observacion)533404576445Mariposa_coleccion(id_mariposa, precio, id_coleccion)00Mariposa_coleccion(id_mariposa, precio, id_coleccion)628653490595persona(id, nombres, apellidos, DNI)00persona(id, nombres, apellidos, DNI)533402938145Nombre_comun(id_especie,id_ zona, nombre_comun)00Nombre_comun(id_especie,id_ zona, nombre_comun)533402357120Zona_geografica(id, zona)00Zona_geografica(id, zona)533404033520coleccion(id, nombre, valor_estimado, id_dueno, fec_inicio)00coleccion(id, nombre, valor_estimado, id_dueno, fec_inicio)533401242695especie(id, nombre_especie,  nombre_cientifico, id_ genero)0especie(id, nombre_especie,  nombre_cientifico, id_ genero)53340728345genero(id,  genero, id_ Familia)0genero(id,  genero, id_ Familia)53340166370Familia(id, Familia)0Familia(id, Familia)<br />53340339725ejemplar(id, id_capturador, id_zona, fec_captura, id_especie,  id_para)00ejemplar(id, id_capturador, id_zona, fec_captura, id_especie,  id_para)<br />39871651631953987165182244<br />111061534099553340102870Mariposa_para(id, para)00Mariposa_para(id, para)<br />111061568580<br />-8458206667500<br />CONSTRUCCION Y USO DE LA BASE DE DATOS<br />Utilizando el motor sqlSERVER hicimos la base de datos<br />Creacion de las tablas<br />Tabla mariposa_para<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[mariposa_para](<br />[id] [int] NOT NULL,<br />[para] [varchar](50) NULL,<br /> CONSTRAINT [PK_mariposa_para] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla persona<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[persona](<br />[id] [int] NOT NULL,<br />[nombre] [varchar](50) NOT NULL,<br />[apellidos] [varchar](50) NOT NULL,<br />[DNI] [varchar](20) NULL,<br /> CONSTRAINT [PK_persona] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla zona_geografica<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[zona_geografica](<br />[id] [int] NOT NULL,<br />[zona] [varchar](50) NOT NULL,<br /> CONSTRAINT [PK_zona_geografica] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla familia<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[familia](<br />[id] [int] NOT NULL,<br />[familia] [varchar](50) NOT NULL,<br /> CONSTRAINT [PK_familia] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla genero<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[genero](<br />[id] [int] NOT NULL,<br />[genero] [varchar](50) NOT NULL,<br />[id_familia] [int] NULL,<br /> CONSTRAINT [PK_genero] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla especie<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[especie](<br />[id] [int] NOT NULL,<br />[nombre_especie] [varchar](50) NULL,<br />[nombre_cientifico] [varchar](50) NULL,<br />[id_genero] [int] NULL,<br /> CONSTRAINT [PK_espacie_1] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla nombre_comun<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[nombre_comun](<br />[id_especie] [int] NULL,<br />[id_zona] [int] NULL,<br />[nombre_comun] [varchar](50) NULL<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla ejemplar<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE TABLE [dbo].[ejemplar](<br />[id] [int] NOT NULL,<br />[id_capturador] [int] NULL,<br />[id_zona] [int] NULL,<br />[fec_captura] [datetime] NULL,<br />[id_especie] [int] NULL,<br />[id_para] [int] NULL,<br /> CONSTRAINT [PK_ejemplar] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />Tabla coleccion<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[coleccion](<br />[id] [int] NOT NULL,<br />[nombre] [varchar](50) NULL,<br />[valor_estimado] [bigint] NULL,<br />[id_dueño] [int] NULL,<br />[fec_inicio] [datetime] NULL,<br /> CONSTRAINT [PK_coleccion] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla mariposa_coleccion<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE TABLE [dbo].[mariposa_coleccion](<br />[id_mariposa] [int] NOT NULL,<br />[precio] [real] NULL,<br />[id_coleccion] [int] NULL,<br /> CONSTRAINT [PK_mariposa_coleccion] PRIMARY KEY CLUSTERED <br />(<br />[id_mariposa] ASC<br />)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />Tabla mariposa_observacion<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[mariposa_observacion](<br />[id_mariposa] [int] NOT NULL,<br />[tiempo_observacion] [varchar](50) NULL,<br /> CONSTRAINT [PK_mariposa_observacion] PRIMARY KEY CLUSTERED <br />(<br />[id_mariposa] ASC<br />)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Creacion de las relaciones(foreing key)<br />ALTER TABLE [dbo].[coleccion]  WITH CHECK ADD  CONSTRAINT [FK_coleccion_persona] FOREIGN KEY([id_dueño])<br />REFERENCES [dbo].[persona] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[coleccion] CHECK CONSTRAINT [FK_coleccion_persona]<br />GO<br />ALTER TABLE [dbo].[ejemplar]  WITH CHECK ADD  CONSTRAINT [FK_ejemplar_especie] FOREIGN KEY([id_especie])<br />REFERENCES [dbo].[especie] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[ejemplar] CHECK CONSTRAINT [FK_ejemplar_especie]<br />GO<br />ALTER TABLE [dbo].[ejemplar]  WITH CHECK ADD  CONSTRAINT [FK_ejemplar_mariposa_para] FOREIGN KEY([id_para])<br />REFERENCES [dbo].[mariposa_para] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[ejemplar] CHECK CONSTRAINT [FK_ejemplar_mariposa_para]<br />GO<br />ALTER TABLE [dbo].[ejemplar]  WITH CHECK ADD  CONSTRAINT [FK_ejemplar_persona] FOREIGN KEY([id_capturador])<br />REFERENCES [dbo].[persona] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[ejemplar] CHECK CONSTRAINT [FK_ejemplar_persona]<br />GO<br />ALTER TABLE [dbo].[ejemplar]  WITH CHECK ADD  CONSTRAINT [FK_ejemplar_zona_geografica] FOREIGN KEY([id_zona])<br />REFERENCES [dbo].[zona_geografica] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[ejemplar] CHECK CONSTRAINT [FK_ejemplar_zona_geografica]<br />GO<br />ALTER TABLE [dbo].[especie]  WITH CHECK ADD  CONSTRAINT [FK_especie_genero] FOREIGN KEY([id_genero])<br />REFERENCES [dbo].[genero] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[especie] CHECK CONSTRAINT [FK_especie_genero]<br />GO<br />ALTER TABLE [dbo].[genero]  WITH CHECK ADD  CONSTRAINT [FK_genero_familia] FOREIGN KEY([id_familia])<br />REFERENCES [dbo].[familia] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[genero] CHECK CONSTRAINT [FK_genero_familia]<br />GO<br />ALTER TABLE [dbo].[mariposa_coleccion]  WITH CHECK ADD  CONSTRAINT [FK_mariposa_coleccion_coleccion] FOREIGN KEY([id_coleccion])<br />REFERENCES [dbo].[coleccion] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[mariposa_coleccion] CHECK CONSTRAINT [FK_mariposa_coleccion_coleccion]<br />GO<br />ALTER TABLE [dbo].[mariposa_coleccion]  WITH CHECK ADD  CONSTRAINT [FK_mariposa_coleccion_ejemplar] FOREIGN KEY([id_mariposa])<br />REFERENCES [dbo].[ejemplar] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[mariposa_coleccion] CHECK CONSTRAINT [FK_mariposa_coleccion_ejemplar]<br />GO<br />ALTER TABLE [dbo].[mariposa_observacion]  WITH CHECK ADD  CONSTRAINT [FK_mariposa_observacion_ejemplar] FOREIGN KEY([id_mariposa])<br />REFERENCES [dbo].[ejemplar] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[mariposa_observacion] CHECK CONSTRAINT [FK_mariposa_observacion_ejemplar]<br />GO<br />ALTER TABLE [dbo].[nombre_comun]  WITH CHECK ADD  CONSTRAINT [FK_nombre_comun_especie] FOREIGN KEY([id_especie])<br />REFERENCES [dbo].[especie] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[nombre_comun] CHECK CONSTRAINT [FK_nombre_comun_especie]<br />GO<br />ALTER TABLE [dbo].[nombre_comun]  WITH CHECK ADD  CONSTRAINT [FK_nombre_comun_zona_geografica] FOREIGN KEY([id_zona])<br />REFERENCES [dbo].[zona_geografica] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[nombre_comun] CHECK CONSTRAINT [FK_nombre_comun_zona_geografica]<br />GO<br />MANIPULACION DE LA BASE DE DATOS<br />Creacion de vistas<br />Obtener la informacion correspondiente a las especies de mariposas existentes en la base de datos, las cuales han sido capturadas despues de abril de 1999<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[Especie_Capturada]<br />AS<br />SELECT     dbo.especie.nombre_especie AS Especie<br />FROM         dbo.especie INNER JOIN<br />                      dbo.ejemplar ON dbo.especie.id = dbo.ejemplar.id_especie<br />WHERE     (dbo.ejemplar.fec_captura >= CONVERT(DATETIME, '1999-05-01 00:00:00', 102))<br />GO<br />Obtener los diferentes nombres comunes y los nombres cientificos de cada una de las especies cuyos ejemplares hayan sido capturados entre los anos 1996 y 1997, todos ellos ordenados por el nombre de la zona.<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[Nombres]<br />AS<br />SELECT     TOP (100) PERCENT dbo.especie.nombre_cientifico, dbo.nombre_comun.nombre_comun<br />FROM         dbo.especie INNER JOIN<br />                      dbo.ejemplar ON dbo.especie.id = dbo.ejemplar.id_especie INNER JOIN<br />                      dbo.zona_geografica ON dbo.ejemplar.id_zona = dbo.zona_geografica.id INNER JOIN<br />                      dbo.nombre_comun ON dbo.especie.id = dbo.nombre_comun.id_especie<br />WHERE     (DATEPART(yyyy, dbo.ejemplar.fec_captura) BETWEEN 1996 AND 1997)<br />ORDER BY dbo.zona_geografica.zona<br />GO<br />Obtener la mariposa mas cara y mas barata de todas las capturadas, la persona quien la capturo y a que colección pertenece.<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[Cara_Barata]<br />AS<br />SELECT     dbo.mariposa_coleccion.precio AS Precio, dbo.persona.nombre, dbo.coleccion.nombre AS Coleccion<br />FROM         dbo.persona INNER JOIN<br />                      dbo.ejemplar ON dbo.persona.id = dbo.ejemplar.id_capturador INNER JOIN<br />                      dbo.mariposa_coleccion ON dbo.ejemplar.id = dbo.mariposa_coleccion.id_mariposa INNER JOIN<br />                      dbo.coleccion ON dbo.mariposa_coleccion.id_coleccion = dbo.coleccion.id<br />WHERE     (dbo.mariposa_coleccion.precio =<br />                          (SELECT     MAX(precio) AS Expr1<br />                            FROM          dbo.mariposa_coleccion AS mariposa_coleccion_1))<br />UNION<br />SELECT     mariposa_coleccion_2.precio AS Precio, persona_1.nombre, coleccion_1.nombre AS Expr1<br />FROM         dbo.persona AS persona_1 INNER JOIN<br />                      dbo.ejemplar AS ejemplar_1 ON persona_1.id = ejemplar_1.id_capturador INNER JOIN<br />                      dbo.mariposa_coleccion AS mariposa_coleccion_2 ON ejemplar_1.id = mariposa_coleccion_2.id_mariposa INNER JOIN<br />                      dbo.coleccion AS coleccion_1 ON mariposa_coleccion_2.id_coleccion = coleccion_1.id<br />WHERE     (mariposa_coleccion_2.precio =<br />                          (SELECT     MIN(precio) AS Expr1<br />                            FROM          dbo.mariposa_coleccion AS mariposa_coleccion_1))<br />GO<br />Obtener la familia de las mariposas cuyos ejemplares han sido liberados. <br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[familias_liberadas]<br />AS<br />SELECT DISTINCT dbo.familia.familia<br />FROM         dbo.familia INNER JOIN<br />                      dbo.genero ON dbo.familia.id = dbo.genero.id_familia INNER JOIN<br />                      dbo.especie ON dbo.genero.id = dbo.especie.id_genero INNER JOIN<br />                      dbo.ejemplar ON dbo.especie.id = dbo.ejemplar.id_especie<br />WHERE     (dbo.ejemplar.id_para = 1)<br />GO<br />Obtener la informacion sobre las familias, generos y especies de mariposas que nunca hayan sido capturados.<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[Info_familia_genero_especie]<br />AS<br />SELECT DISTINCT dbo.especie.nombre_especie, dbo.genero.genero, dbo.familia.familia<br />FROM         dbo.especie INNER JOIN<br />                      dbo.genero ON dbo.especie.id_genero = dbo.genero.id INNER JOIN<br />                      dbo.familia ON dbo.genero.id_familia = dbo.familia.id<br />except<br />SELECT DISTINCT dbo.especie.nombre_especie, dbo.genero.genero, dbo.familia.familia<br />FROM         dbo.ejemplar INNER JOIN<br />                      dbo.especie ON dbo.ejemplar.id_especie = dbo.especie.id INNER JOIN<br />                      dbo.genero ON dbo.especie.id_genero = dbo.genero.id INNER JOIN<br />                      dbo.familia ON dbo.genero.id_familia = dbo.familia.id<br />GO<br />Obtener ordenadas por el numero de capturas informacion de las zonas geograficas en las que se hayan realizado mas de 6 capturas.<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[Zona_Mas6Capturas]<br />AS<br />SELECT     TOP (100) PERCENT dbo.zona_geografica.zona, COUNT(dbo.ejemplar.id) AS [Numero Mariposas]<br />FROM         dbo.zona_geografica INNER JOIN<br />                      dbo.ejemplar ON dbo.zona_geografica.id = dbo.ejemplar.id_zona<br />GROUP BY dbo.zona_geografica.zona<br />HAVING      (COUNT(dbo.ejemplar.id) > 6)<br />ORDER BY [Numero Mariposas]<br />GO<br />Crear una vista para todas las colecciones iniciadas a partir de 1996 y que permita consultar simultaneamente los atributos dni, nombre, apellidos y precio estimado.<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[Colecciones_iniciadas]<br />AS<br />SELECT     dbo.coleccion.nombre AS Coleccion, dbo.coleccion.valor_estimado, dbo.persona.nombre, dbo.persona.apellidos, dbo.persona.DNI<br />FROM         dbo.coleccion INNER JOIN<br />                      dbo.persona ON dbo.coleccion.id_dueño = dbo.persona.id<br />WHERE     (DATEPART(yyyy, dbo.coleccion.fec_inicio) >= 1996)<br />GO<br />Realizar una consulta sobre la vista colección<br />SELECT * FROM Colecciones_iniciadas<br />SELECT * FROM Colecciones_iniciadas WHERE valor_estimado>10000 <br />SELECT nombre, coleccion, valor_estimado FROM Colecciones_iniciadas WHERE DNI='0801-1985-54561’<br />Obtener la informacion de las personas que han capturado ejemplares antes del 5 de noviembre de 1980, pero que no tienen ninguna colección.<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[personas_sinColeccion]<br />AS<br />SELECT DISTINCT dbo.persona.id, dbo.persona.nombre, dbo.persona.apellidos, dbo.persona.DNI<br />FROM         dbo.persona INNER JOIN<br />                      dbo.ejemplar ON dbo.persona.id = dbo.ejemplar.id_capturador<br />WHERE     (dbo.ejemplar.fec_captura < '5-11-1980')<br />except<br />SELECT     dbo.persona.id, dbo.persona.nombre, dbo.persona.apellidos, dbo.persona.DNI<br />FROM         dbo.persona INNER JOIN<br />                      dbo.coleccion ON dbo.persona.id = dbo.coleccion.id_dueño<br />GO<br /> Actualizar el valor estimado de las colecciones a valor real de la suma de los ejemplares que la componen.<br />GO<br />CREATE PROCEDURE [dbo].[actualizar_precio_estimado]<br />AS<br />BEGIN<br />-- SET NOCOUNT ON added to prevent extra result sets from<br />-- interfering with SELECT statements.<br />SET NOCOUNT ON;<br />update coleccion set valor_estimado = (select sum(precio) from mariposa_coleccion where id_coleccion =id)<br />END<br />GO<br /> Actualizar el precio de los ejemplares de las colecciones de nuestra base de datos en un tanto porciento dado y según el precio de los mismos, considerar la existencia de tres intervalos: menor de 7000, de 7000 a 10000 y mayor de 10000.<br />GO<br />CREATE PROCEDURE [dbo].[actualizar_PrecioEjemplares] <br />@porcentaje real<br />AS<br />BEGIN<br />-- SET NOCOUNT ON added to prevent extra result sets from<br />-- interfering with SELECT statements.<br />SET NOCOUNT ON;<br />    update mariposa_coleccion set precio= (case when precio<7000 then precio*(1+@porcentaje) when precio>=7000 and precio<10000 then precio*(1+(2*(@porcentaje))) else precio*(1+(3*(@porcentaje))) end)<br />END<br />GO<br />CONCLUSIONES<br />Para ayuda de resolucion del problema se tuvieron que crear algunas vistas el motor para facilitar la visualizacion de los datos requeridos.<br />El uso de los procedimientos hace que sea mas facil la manipulacion de la base de datos.<br />Se considero cada supuesto planteado al inicio del problema para la delimitacion del mismo.  <br />
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas
Coleccion de mariposas

Más contenido relacionado

La actualidad más candente

Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.
Ana Castro
 
Taller Algebra Relacional
Taller Algebra RelacionalTaller Algebra Relacional
Taller Algebra Relacional
AndresSuarez
 
Ejercicios del 1 al 9
Ejercicios del 1 al 9Ejercicios del 1 al 9
Ejercicios del 1 al 9
Alessandra Marin
 
Modelo Entidad Relacion
Modelo Entidad RelacionModelo Entidad Relacion
Modelo Entidad Relacion
Marco Antonio González Malaver
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
Lalo Chooper
 
Ejercicios Entidad - Relacion
Ejercicios Entidad - RelacionEjercicios Entidad - Relacion
Ejercicios Entidad - Relacion
Anthony Criollo Valencia
 
CASO BASE DE DATOS
CASO BASE DE DATOSCASO BASE DE DATOS
CASO BASE DE DATOS
Mariela1205
 
Ejercicios de base de datos
Ejercicios de base de datosEjercicios de base de datos
Ejercicios de base de datos
Maria Barrios
 
Ejercicio 1,2,3
Ejercicio 1,2,3Ejercicio 1,2,3
Ejercicio 1,2,3
Monika Sanchez
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
DĴäîřo Lêmä
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
Angel Vázquez Patiño
 
ejercicios diseño:_entidad relación en la creación de una BD
ejercicios diseño:_entidad relación en la creación de una BDejercicios diseño:_entidad relación en la creación de una BD
ejercicios diseño:_entidad relación en la creación de una BD
Jomar Burgos Palacios
 
Diagrama entidad relacion
Diagrama entidad relacion Diagrama entidad relacion
Diagrama entidad relacion
Mao Panesso
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
TAtiizz Villalobos
 
Método de ordenamiento quicksort
Método de ordenamiento quicksortMétodo de ordenamiento quicksort
Método de ordenamiento quicksort
jorgellanos29
 
Hash mitad al cuadrado pdf
Hash mitad al cuadrado pdfHash mitad al cuadrado pdf
Hash mitad al cuadrado pdf
Héctor Riquelme Burgos
 
Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)
Stalin Eduardo Tusa Vitar
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
Carlos Alberto Cuervo Cardenas
 
Estructura de datos : Cola
Estructura de datos : ColaEstructura de datos : Cola
Estructura de datos : Cola
Emerson Garay
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
maria alejandra
 

La actualidad más candente (20)

Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.
 
Taller Algebra Relacional
Taller Algebra RelacionalTaller Algebra Relacional
Taller Algebra Relacional
 
Ejercicios del 1 al 9
Ejercicios del 1 al 9Ejercicios del 1 al 9
Ejercicios del 1 al 9
 
Modelo Entidad Relacion
Modelo Entidad RelacionModelo Entidad Relacion
Modelo Entidad Relacion
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Ejercicios Entidad - Relacion
Ejercicios Entidad - RelacionEjercicios Entidad - Relacion
Ejercicios Entidad - Relacion
 
CASO BASE DE DATOS
CASO BASE DE DATOSCASO BASE DE DATOS
CASO BASE DE DATOS
 
Ejercicios de base de datos
Ejercicios de base de datosEjercicios de base de datos
Ejercicios de base de datos
 
Ejercicio 1,2,3
Ejercicio 1,2,3Ejercicio 1,2,3
Ejercicio 1,2,3
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
ejercicios diseño:_entidad relación en la creación de una BD
ejercicios diseño:_entidad relación en la creación de una BDejercicios diseño:_entidad relación en la creación de una BD
ejercicios diseño:_entidad relación en la creación de una BD
 
Diagrama entidad relacion
Diagrama entidad relacion Diagrama entidad relacion
Diagrama entidad relacion
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Método de ordenamiento quicksort
Método de ordenamiento quicksortMétodo de ordenamiento quicksort
Método de ordenamiento quicksort
 
Hash mitad al cuadrado pdf
Hash mitad al cuadrado pdfHash mitad al cuadrado pdf
Hash mitad al cuadrado pdf
 
Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Estructura de datos : Cola
Estructura de datos : ColaEstructura de datos : Cola
Estructura de datos : Cola
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 

Similar a Coleccion de mariposas

Colecciones de mariposas
Colecciones de mariposasColecciones de mariposas
Colecciones de mariposas
Luis Jherry
 
Escenarios
EscenariosEscenarios
Escenarios
EscenariosEscenarios
guia de identificacion de macroinvertebrados acuaticos
guia de identificacion de macroinvertebrados acuaticosguia de identificacion de macroinvertebrados acuaticos
guia de identificacion de macroinvertebrados acuaticos
IPN
 
Practik de biolo 7 8 9
Practik de biolo 7 8 9Practik de biolo 7 8 9
Practik de biolo 7 8 9
0707065082
 
Practik de biolo 7 8 9
Practik de biolo 7 8 9Practik de biolo 7 8 9
Practik de biolo 7 8 9
0707065082jaramillo
 
Practik de biolo 7 8 9
Practik de biolo 7 8 9Practik de biolo 7 8 9
Practik de biolo 7 8 9
0707065082
 
Practik de biolo 7 8 9
Practik de biolo 7 8 9Practik de biolo 7 8 9
Practik de biolo 7 8 9
0707065082jaramillo
 
Insectos1 slideshare
Insectos1 slideshareInsectos1 slideshare
Insectos1 slideshare
Raimundo Sepúlveda Vásquez
 
Práctica 3
Práctica 3Práctica 3
Colecta y conservación de artrópodos
Colecta y conservación de artrópodosColecta y conservación de artrópodos
Colecta y conservación de artrópodos
Klaus Kremer
 
Zoologia guia captura y conservacion de insectos (c)
Zoologia   guia captura y conservacion de insectos (c)Zoologia   guia captura y conservacion de insectos (c)
Zoologia guia captura y conservacion de insectos (c)
Fernan Pedro Silva Labbe
 
Attachment (1)
Attachment (1)Attachment (1)
Attachment (1)
gabomullen
 
Observacion de aves
Observacion de avesObservacion de aves
Observacion de aves
william tito nina
 
Tres ultimas prácticas
Tres ultimas prácticasTres ultimas prácticas
Tres ultimas prácticas
Mónica Landy Maldonado
 
Chaco-Pantanal_tecnicas_basicas_de_monitoreo.pdf
Chaco-Pantanal_tecnicas_basicas_de_monitoreo.pdfChaco-Pantanal_tecnicas_basicas_de_monitoreo.pdf
Chaco-Pantanal_tecnicas_basicas_de_monitoreo.pdf
DannyelRosalesSanche
 
Aracnidos
AracnidosAracnidos
Captura y mantenimiento de aracnidos
Captura y mantenimiento de aracnidos Captura y mantenimiento de aracnidos
Captura y mantenimiento de aracnidos
Rodrigo Laskowicz
 
Recolecion, montaje y preservacion de insectos
Recolecion, montaje y preservacion de insectosRecolecion, montaje y preservacion de insectos
Recolecion, montaje y preservacion de insectos
Sthalyn Remache
 
Busqueda De Informacion Insectos
Busqueda De Informacion InsectosBusqueda De Informacion Insectos
Busqueda De Informacion Insectos
gomorales
 

Similar a Coleccion de mariposas (20)

Colecciones de mariposas
Colecciones de mariposasColecciones de mariposas
Colecciones de mariposas
 
Escenarios
EscenariosEscenarios
Escenarios
 
Escenarios
EscenariosEscenarios
Escenarios
 
guia de identificacion de macroinvertebrados acuaticos
guia de identificacion de macroinvertebrados acuaticosguia de identificacion de macroinvertebrados acuaticos
guia de identificacion de macroinvertebrados acuaticos
 
Practik de biolo 7 8 9
Practik de biolo 7 8 9Practik de biolo 7 8 9
Practik de biolo 7 8 9
 
Practik de biolo 7 8 9
Practik de biolo 7 8 9Practik de biolo 7 8 9
Practik de biolo 7 8 9
 
Practik de biolo 7 8 9
Practik de biolo 7 8 9Practik de biolo 7 8 9
Practik de biolo 7 8 9
 
Practik de biolo 7 8 9
Practik de biolo 7 8 9Practik de biolo 7 8 9
Practik de biolo 7 8 9
 
Insectos1 slideshare
Insectos1 slideshareInsectos1 slideshare
Insectos1 slideshare
 
Práctica 3
Práctica 3Práctica 3
Práctica 3
 
Colecta y conservación de artrópodos
Colecta y conservación de artrópodosColecta y conservación de artrópodos
Colecta y conservación de artrópodos
 
Zoologia guia captura y conservacion de insectos (c)
Zoologia   guia captura y conservacion de insectos (c)Zoologia   guia captura y conservacion de insectos (c)
Zoologia guia captura y conservacion de insectos (c)
 
Attachment (1)
Attachment (1)Attachment (1)
Attachment (1)
 
Observacion de aves
Observacion de avesObservacion de aves
Observacion de aves
 
Tres ultimas prácticas
Tres ultimas prácticasTres ultimas prácticas
Tres ultimas prácticas
 
Chaco-Pantanal_tecnicas_basicas_de_monitoreo.pdf
Chaco-Pantanal_tecnicas_basicas_de_monitoreo.pdfChaco-Pantanal_tecnicas_basicas_de_monitoreo.pdf
Chaco-Pantanal_tecnicas_basicas_de_monitoreo.pdf
 
Aracnidos
AracnidosAracnidos
Aracnidos
 
Captura y mantenimiento de aracnidos
Captura y mantenimiento de aracnidos Captura y mantenimiento de aracnidos
Captura y mantenimiento de aracnidos
 
Recolecion, montaje y preservacion de insectos
Recolecion, montaje y preservacion de insectosRecolecion, montaje y preservacion de insectos
Recolecion, montaje y preservacion de insectos
 
Busqueda De Informacion Insectos
Busqueda De Informacion InsectosBusqueda De Informacion Insectos
Busqueda De Informacion Insectos
 

Coleccion de mariposas

  • 1. -5872325-8645520052118785138035007610228600001158240668020000-4135755336232500Universidad Nacional Autónoma de Honduras<br />UNAH<br />Facultad de Ingeniería<br />-513572443402200Departamento de Ingeniería en sistemas<br />Base de Datos II<br />Proyecto Colección de Mariposas<br />42379905334000Catedrático:<br />48858314635500Ing. Eduardo Gross<br />Integrantes:<br />Claudia Melissa Espinal20061007063<br />Juan José López20041008352<br />Sección:<br />14:01<br />5643563131937400-3370898350628500-10393691644082002966720349821500Tegucigalpa M.D.C. 6 de Diciembre del 2010<br />INDICE<br />Pág.<br />Introducción………………………………………………2<br />Objetivos…………………………………………………..3<br />Análisis completo del enunciado………………4<br />Modelo Conceptual…………………….……………5<br />Análisis de todos los tipos de entidad<br />Análisis de todos los tipos de interrelación<br />Modelo relacional……………………………………11<br />Generar cada tabla con todas las relaciones<br />Normalizar el modelo<br />Diccionario de datos<br />Construcción y el uso de la base de datos<br />Manipulación de la base de datos<br />Creación del programa<br />Conclusiones…………………………………..………26<br />INTRODUCCION<br />En el presente informe se documento la resolucion del segundo problema asignado en clase de Bases de Datos II, llamado “Colección de Mariposas”, se presentara desde la definicion del problema hasta la creacion de la base de datos como una de las propuesta a la resolucion de este ejercicio.<br />Para este segundo ejercicio se seguira utilizadon el motor de bases de datos SQLServer 2005 y la plataforma de programacion Visual Studio.Net 2005.<br />OBJETIVOS<br />Análisis y resolución del problema que permita la construcción de un modelo entidad-relación y modelo conceptual.<br />Práctica de la manipulación de la base de datos a través de la realización de consultas.<br />Crear una aplicación que cumpla con todos los requerimientos presentados.<br />ANALISIS COMPLETO DEL ENUNCIADO<br />El ejercicio asignado nos plantea el problema de que se desea crear una base de datos en la cual se almacene información referente a las mariposas que son objeto de estudio como también lo son para pertenecer en una colección de estas. Se debe mantener información de las mariposas capturadas, fecha y lugar de captura del ejemplar así como la persona que ha hecho la captura.<br />Actualmente una de las principales tareas de los biólogos es el estudio de la población de las especies naturales que pueblan España, siendo uno de los insectos unos de los reinos más estudiados, y dentro de este, el orden de los lepidópteros, mariposas mas concretamente. <br />El problema da a conocer ciertos requisitos que se deberán cumplir para la realización del mismo.<br />Estos requisitos son los siguientes:<br />Se considera que un ejemplar de mariposa pertenece a una única especie. Una especie pertenece a un único género y un género a una única familia natural.<br />El nombre científico de la especie de mariposas es único, pero el nombre común que tiene una especie puede variar según la zona geográfica donde se encuentra la mariposa. Si bien dentro de una determinada zona el nombre común de una especie es único.<br />Ya sea para su observación o para formar parte de una colección, la mariposa ha de ser capturada primero. La captura de cada ejemplar la realiza solo una persona.<br />Una determinada persona solo puede ser propietaria de una colección, y los ejemplares de mariposa que pertenecen a esta colección pueden haber sido capturados por otras personas.<br />Se desea mantener información de las familias, géneros y especies a las que pertenecen los ejemplares de mariposas, independientemente de que haya sido capturado algún ejemplar de los mismos.<br />Una mariposa solo puede pertenecer a una colección y una colección estará al menos formada por un ejemplar de mariposa (como es lógico).<br />El nombre de una zona geográfica donde es capturado un ejemplar es único; es decir, se considera que no existen dos zonas geográficas con el mismo nombre; no siendo de interés mantener información añadida sobre los lugares en donde las mariposas son capturadas.<br />MODELO CONCEPTUAL<br />422551111186400663605317943pertenecepertenece435927544288NOMBRE_COMUN00NOMBRE_COMUNMODELO ENTIDAD-RELACION<br />1789430103505**3736340118110**3020695120015114390390169545tiene00tiene3971168128713434247030946700211485430797502046274195580057848532004005772053200990907415140335129349531496030238703225802077085127635ESPECIE00ESPECIE<br />436308525400**2447290819151126949401168400769951334645NOMBRE_CIENTIFICO00NOMBRE_CIENTIFICO21840691168400<br />295910107951146545530162501041731118745NOMBRE_ESPECIE00NOMBRE_ESPECIE1909555241575ID00ID-60325272415GENERO00GENERO<br />89408077530**6070609334501333456951910929418951910<br />2880050166980pertenecepertenece1431925302895pertenecepertenece2513803116205-99060115901GENERO00GENERO368935232741ID00ID1142365236220<br />71691553975115055870114300ID00ID4614545307340ZONA00ZONA53778152349500200025134536045529513208007167672949500-155575113665FAMILIA00FAMILIA<br />441007528892511823582256846captura0captura3077033270332Fue_capturado_en00Fue_capturado_en5121275844550-370840174321FAMILIA00FAMILIA200660258141ID00ID<br />18154651631950243903530480**1619250210820**4066540180340112922270228600**4359910208915ZONA_GEOGRAFICA00ZONA_GEOGRAFICA3590925203835176530219406ID00ID42672033083509105902051051885315217170EJEMPLAR00EJEMPLAR<br />2595245186055112204085577850230101816244002184060186364003983355615950-291769278765DNI00DNI-477520159716APELLIDOS00APELLIDOS-31335917145NOMBRES00NOMBRES215903256225035052012382501099539196998012802935877402938972587740<br />7308857556511190925323333ID00ID1414588212725FEC_CAPTURA00FEC_CAPTURA336552159007167673344680-198120183515PERSONA00PERSONA<br />178435202565112064051529610<br />2898140216535PARA00PARA24130335280<br />27260551193800017157702044700044894521590tiene00tiene<br />-41275027241500208280134620**3992576301625TIEMPO_OBSERVACION00TIEMPO_OBSERVACION474345053644ID_MARIPOSA00ID_MARIPOSA55391051403350-360045328295COLECCION00COLECCION<br />734695-4445114053840318770382206518542011-701040317831FEC_INICIO00FEC_INICIO17145-6350024303957344035272917335504260853225800748969199942843915202565005217795463550<br />-849546208805VALOR_ESTIMADO00VALOR_ESTIMADO-252730333071NOMBRE00NOMBRE410781529845MARIPOSA_OBSERVACION0MARIPOSA_OBSERVACION<br />15487653352800181292511303011175260114631ID00ID<br />133540526035**187942721703206610355651510426702501900160850049457MARIPOSA_COLLECCION0MARIPOSA_COLLECCION<br />42481593980pertenecepertenece1783715330200<br />201264632385PRECIO00PRECIO1911019186690ID_MARIPOSA00ID_MARIPOSA<br />ANALISIS DE TODOS LOS TIPOS DE ENTIDAD<br />Familia: es la entidad donde se prentende guardar la informacion del tipo de familia al que pertenece una mariposa, esta posee atributos como ser un id que identifica a la familia y un campo familia, el cual nos dice cual es la familia.<br />Especie: es la entidad donde se especifica o da a conocer la especie a la cual pertenece una mariposa, esta entidad tiene atributos como un id que sirve para identificar la especie y un campo llamado especie que muestra las especies existentes.<br />Genero: esta entidad muestra el genero al cual puede pertenecer una mariposa, tiene atributos como un id el cual identifica a cada uno de los generos existenntes, tambien esta el atributo genero el que especifica que tipo de genero es la mariposa.<br />Ejemplar: es la entidad que muestra cual es el ejemplar de mariposa existente ya que puede ser un ejemplar para colección o bien un ejemplar para observacion. Esta entidad tiene bien un atributo llamado id para identificar el ejemplar y otro atributo llamado fecha de captura que es la fecha en la que fue capturada la mariposa.<br />Zona_geografica: esta entidad muestra la zona geografica en la que fue la captura de la mariposa, tiene atributos como ser un id para identificar la zona y un campo llamado zona el cual muestra la zona de la captura.<br />Persona: esta entidad es la que refleja la persona quien realizo la captura de la mariposa, en esta se guarda los datos de la persona para ello tiene campos como ser un id para identificar a la persona como unica, un campo nombre que es el nombre de la persona, un campo apellidos que guarda los apellidos de la persona y un campo DNI que es el numero de identidad de la persona. <br />Colección: es la entidad para identificar la colección de mariposas existentes, tiene atributos como fecha de inicio para saber la fecha cuando inicio, un campo nombre el cual es el nombre de la colección, un atributo valor estimado que es el valor en dinero de cuanto es el precio de la colección y tambien tiene un id para identificar a la misma.<br />Mariposa_coleccion: es una entidad debil dado que sino existen ejemplares no existen mariposas para colección. Sirve para guardar todas aquellas mariposas que fueron capturadas y estan en una colección, tiene atributos como ser un id de la mariposa capturada y el precio de la misma.<br />Mariposa_observacion: es una entidad debil dado que sino existen ejemplares no existen mariposas para observacion. En esta entidad se guardan todas aquellas mariposas que solo son para observacion y tiene atributos como ser el id para identificar a la mariposa, y un tiempo de observacion que es el tiempo en que tiene a la mariposa para observarla y luego la dejan libre.<br />ANALISIS DE TODOS LOS TIPOS DE INTERRELACION<br />Es una relacion de uno a muchos<br />13131804064011300863097155**24168092876551243965287655333057594615GENERO00GENERO2031365101218434975144145FAMILIA00FAMILIA<br />187007574295pertenecepertenece<br />En la relacion muestra que en una familia puede existir o pertenecer muchos generos.<br />Es una relacion de uno a muchos<br />3079750228600**13843001720851121837652190753477260266700ESPECIE00ESPECIE392430243840GENERO00GENERO<br />1936750245110pertenecepertenece258762576835136334576835<br />En la relacion muestra que en un genero pueden existir o pertenecer muchas especies.<br />Es una relacion de uno a muchos<br />341566523368003089275270510**139382521399511467360290830ESPECIE00ESPECIE3475990300990EJEMPLAR00EJEMPLAR2166620259715<br />1955800318135pertenecepertenece256857572390139192081915<br />En la relacion muestra que en una especie pueden existir o pertenecer muchos ejemplares.<br />Es una relacion de muchos a uno<br />50038026416003179445231140111598295257810**23012402527303474085368935ZONA_GEOGRAFICA00ZONA_GEOGRAFICA548005327660EJEMPLAR00EJEMPLAR<br />1942465295275Fue_capturado_en00Fue_capturado_en160083580010<br />En la relacion muestra que muchos ejemplares fueron capturados en una zona geografica o bien en una zona geografica fueron capturados muchos ejemplares.<br />Es una relacion de muchos a uno<br />66294019431003364865158750111783715185420**734060245745EJEMPLAR00EJEMPLAR3655060185420PERSONA00PERSONA2384405179070<br />2281555275590captura0captura179133522860<br />La relacion muestra que muchos ejemplares son capturados por una persona o bien una mariposa solo puede ser capturada por una unica persona.<br />Es una relacion de muchos a uno<br />3593465286385PERSONA00PERSONA2461895292100535305308610COLECCION00COLECCION48260025273000<br />2373630339090tiene00tiene3302635-123190111721485-96520**1720215118745<br />La relacion muestra que muchos coleccionespueden ser de una persona o bien una persona puede tener muchas colecciones.<br />Es una relacion de muchos a uno<br />3533140238125112152650264795**27679652755902660652489200325755303530MARIPOSA_COLLECCION0MARIPOSA_COLLECCION<br />2578735305435pertenecepertenece20396201390653830955-4445COLECCION00COLECCION3778250-6032500<br />La relacion muestra que muchos coleccionespueden ser de una persona o bien una persona puede tener muchas colecciones. <br />Es una relacion de muchos a muchos<br />266382516192500279781093980NOMBRE_COMUN00NOMBRE_COMUN<br />3627755203835111647825193040112830194259080**2214245249555**3914775326390ZONA_GEOGRAFICA00ZONA_GEOGRAFICA683895327660ESPECIE00ESPECIE2477770255270<br />16059151111250<br />238696555880tiene0tiene<br />La relacion muestra que una especie tiene muchos nombres comunes en muchas zonas especificas. <br />Generalización: relación de uno a uno<br />195516526606502026285317500EJEMPLAR00EJEMPLAR<br />167259021653500<br />25317456096011<br />15182851524011318706599695101208915320040MARIPOSA_COLLECCION0MARIPOSA_COLLECCION14922526543002974340414655MARIPOSA_OBSERVACION0MARIPOSA_OBSERVACION2920365362585<br />Nos muestra que una mariposa_coleccion y una mariposa_observacion son un tipo de ejemplar que hay y estos tipos van a tener todos los atributos de la entidad ejemplar aparte de sus propios atributos que los diferencian uno del otro.<br />La relacion es de uno a uno dado que un ejemplar solo puede ser de mariposa_coleccion o mariposa_observacion.<br />MODELO RELACIONAL<br />DIAGRAMA RELACIONAL ANTES DE NORMALIZAR<br />291084047097952910840487172034347154490720786765449072078676542811701920240539559517106904814570-2990865576570-2990865033645-2990852252344-2990852252345786765203327026441404224020-895364376420121539019856457010403700145-8953537858701920240312864519202403281045351091527000202063115270002013392153128645-38113328670-38102157094-895353785870-895352357120-8953523571201215390203327012153902700020012153902557145206311520332700033204152033270-895352157095-895351814195-80010181419570104014617700032537401461770-8001011760200-800101576070-80010117602063436592837063436533782001539240928370-80010499745-895361061720-89535499745628655166995Mariposa_observacion(id_mariposa, tiempo_observacion)00Mariposa_observacion(id_mariposa, tiempo_observacion)533404576445Mariposa_coleccion(id_mariposa, precio, id_coleccion)00Mariposa_coleccion(id_mariposa, precio, id_coleccion)628653490595persona(id, nombres, apellidos, DNI)00persona(id, nombres, apellidos, DNI)533402938145Nombre_comun(id_especie,id_ zona, nombre_comun)00Nombre_comun(id_especie,id_ zona, nombre_comun)533402357120Zona_geografica(id, zona)00Zona_geografica(id, zona)533404033520coleccion(id, nombre, valor_estimado, id_dueno, fec_inicio)00coleccion(id, nombre, valor_estimado, id_dueno, fec_inicio)533401814195ejemplar(id, id_capturador, id_zona, fec_captura, id_especie, para)00ejemplar(id, id_capturador, id_zona, fec_captura, id_especie, para)533401242695especie(id, nombre_especie, nombre_cientifico, id_ genero)0especie(id, nombre_especie, nombre_cientifico, id_ genero)53340728345genero(id, genero, id_ Familia)0genero(id, genero, id_ Familia)53340166370Familia(id, Familia)0Familia(id, Familia)<br />DIAGRAMA RELACIONAL NORMALIZADO<br />291084047097952910840487172034347154490720786765449072078676542811701920240539559517106904814570-2990865576570-2990865033645-2990852252344-2990852252345786765203327026441404224020-895364376420121539019856457010403700145-8953537858701920240312864519202403281045351091527000202063115270002013392153128645-38113328670-38102157094-895353785870-895352357120-8953523571201215390203327012153902700020012153902557145206311520332700033204152033270-895352157095-895351814195-80010181419570104014617700032537401461770-8001011760200-800101576070-80010117602063436592837063436533782001539240928370-80010499745-895361061720-89535499745628655166995Mariposa_observacion(id_mariposa, tiempo_observacion)00Mariposa_observacion(id_mariposa, tiempo_observacion)533404576445Mariposa_coleccion(id_mariposa, precio, id_coleccion)00Mariposa_coleccion(id_mariposa, precio, id_coleccion)628653490595persona(id, nombres, apellidos, DNI)00persona(id, nombres, apellidos, DNI)533402938145Nombre_comun(id_especie,id_ zona, nombre_comun)00Nombre_comun(id_especie,id_ zona, nombre_comun)533402357120Zona_geografica(id, zona)00Zona_geografica(id, zona)533404033520coleccion(id, nombre, valor_estimado, id_dueno, fec_inicio)00coleccion(id, nombre, valor_estimado, id_dueno, fec_inicio)533401242695especie(id, nombre_especie, nombre_cientifico, id_ genero)0especie(id, nombre_especie, nombre_cientifico, id_ genero)53340728345genero(id, genero, id_ Familia)0genero(id, genero, id_ Familia)53340166370Familia(id, Familia)0Familia(id, Familia)<br />53340339725ejemplar(id, id_capturador, id_zona, fec_captura, id_especie, id_para)00ejemplar(id, id_capturador, id_zona, fec_captura, id_especie, id_para)<br />39871651631953987165182244<br />111061534099553340102870Mariposa_para(id, para)00Mariposa_para(id, para)<br />111061568580<br />-8458206667500<br />CONSTRUCCION Y USO DE LA BASE DE DATOS<br />Utilizando el motor sqlSERVER hicimos la base de datos<br />Creacion de las tablas<br />Tabla mariposa_para<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[mariposa_para](<br />[id] [int] NOT NULL,<br />[para] [varchar](50) NULL,<br /> CONSTRAINT [PK_mariposa_para] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla persona<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[persona](<br />[id] [int] NOT NULL,<br />[nombre] [varchar](50) NOT NULL,<br />[apellidos] [varchar](50) NOT NULL,<br />[DNI] [varchar](20) NULL,<br /> CONSTRAINT [PK_persona] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla zona_geografica<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[zona_geografica](<br />[id] [int] NOT NULL,<br />[zona] [varchar](50) NOT NULL,<br /> CONSTRAINT [PK_zona_geografica] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla familia<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[familia](<br />[id] [int] NOT NULL,<br />[familia] [varchar](50) NOT NULL,<br /> CONSTRAINT [PK_familia] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla genero<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[genero](<br />[id] [int] NOT NULL,<br />[genero] [varchar](50) NOT NULL,<br />[id_familia] [int] NULL,<br /> CONSTRAINT [PK_genero] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla especie<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[especie](<br />[id] [int] NOT NULL,<br />[nombre_especie] [varchar](50) NULL,<br />[nombre_cientifico] [varchar](50) NULL,<br />[id_genero] [int] NULL,<br /> CONSTRAINT [PK_espacie_1] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla nombre_comun<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[nombre_comun](<br />[id_especie] [int] NULL,<br />[id_zona] [int] NULL,<br />[nombre_comun] [varchar](50) NULL<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla ejemplar<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE TABLE [dbo].[ejemplar](<br />[id] [int] NOT NULL,<br />[id_capturador] [int] NULL,<br />[id_zona] [int] NULL,<br />[fec_captura] [datetime] NULL,<br />[id_especie] [int] NULL,<br />[id_para] [int] NULL,<br /> CONSTRAINT [PK_ejemplar] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />Tabla coleccion<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[coleccion](<br />[id] [int] NOT NULL,<br />[nombre] [varchar](50) NULL,<br />[valor_estimado] [bigint] NULL,<br />[id_dueño] [int] NULL,<br />[fec_inicio] [datetime] NULL,<br /> CONSTRAINT [PK_coleccion] PRIMARY KEY CLUSTERED <br />(<br />[id] ASC<br />)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Tabla mariposa_coleccion<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE TABLE [dbo].[mariposa_coleccion](<br />[id_mariposa] [int] NOT NULL,<br />[precio] [real] NULL,<br />[id_coleccion] [int] NULL,<br /> CONSTRAINT [PK_mariposa_coleccion] PRIMARY KEY CLUSTERED <br />(<br />[id_mariposa] ASC<br />)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />Tabla mariposa_observacion<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[mariposa_observacion](<br />[id_mariposa] [int] NOT NULL,<br />[tiempo_observacion] [varchar](50) NULL,<br /> CONSTRAINT [PK_mariposa_observacion] PRIMARY KEY CLUSTERED <br />(<br />[id_mariposa] ASC<br />)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]<br />) ON [PRIMARY]<br />GO<br />SET ANSI_PADDING OFF<br />GO<br />Creacion de las relaciones(foreing key)<br />ALTER TABLE [dbo].[coleccion] WITH CHECK ADD CONSTRAINT [FK_coleccion_persona] FOREIGN KEY([id_dueño])<br />REFERENCES [dbo].[persona] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[coleccion] CHECK CONSTRAINT [FK_coleccion_persona]<br />GO<br />ALTER TABLE [dbo].[ejemplar] WITH CHECK ADD CONSTRAINT [FK_ejemplar_especie] FOREIGN KEY([id_especie])<br />REFERENCES [dbo].[especie] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[ejemplar] CHECK CONSTRAINT [FK_ejemplar_especie]<br />GO<br />ALTER TABLE [dbo].[ejemplar] WITH CHECK ADD CONSTRAINT [FK_ejemplar_mariposa_para] FOREIGN KEY([id_para])<br />REFERENCES [dbo].[mariposa_para] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[ejemplar] CHECK CONSTRAINT [FK_ejemplar_mariposa_para]<br />GO<br />ALTER TABLE [dbo].[ejemplar] WITH CHECK ADD CONSTRAINT [FK_ejemplar_persona] FOREIGN KEY([id_capturador])<br />REFERENCES [dbo].[persona] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[ejemplar] CHECK CONSTRAINT [FK_ejemplar_persona]<br />GO<br />ALTER TABLE [dbo].[ejemplar] WITH CHECK ADD CONSTRAINT [FK_ejemplar_zona_geografica] FOREIGN KEY([id_zona])<br />REFERENCES [dbo].[zona_geografica] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[ejemplar] CHECK CONSTRAINT [FK_ejemplar_zona_geografica]<br />GO<br />ALTER TABLE [dbo].[especie] WITH CHECK ADD CONSTRAINT [FK_especie_genero] FOREIGN KEY([id_genero])<br />REFERENCES [dbo].[genero] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[especie] CHECK CONSTRAINT [FK_especie_genero]<br />GO<br />ALTER TABLE [dbo].[genero] WITH CHECK ADD CONSTRAINT [FK_genero_familia] FOREIGN KEY([id_familia])<br />REFERENCES [dbo].[familia] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[genero] CHECK CONSTRAINT [FK_genero_familia]<br />GO<br />ALTER TABLE [dbo].[mariposa_coleccion] WITH CHECK ADD CONSTRAINT [FK_mariposa_coleccion_coleccion] FOREIGN KEY([id_coleccion])<br />REFERENCES [dbo].[coleccion] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[mariposa_coleccion] CHECK CONSTRAINT [FK_mariposa_coleccion_coleccion]<br />GO<br />ALTER TABLE [dbo].[mariposa_coleccion] WITH CHECK ADD CONSTRAINT [FK_mariposa_coleccion_ejemplar] FOREIGN KEY([id_mariposa])<br />REFERENCES [dbo].[ejemplar] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[mariposa_coleccion] CHECK CONSTRAINT [FK_mariposa_coleccion_ejemplar]<br />GO<br />ALTER TABLE [dbo].[mariposa_observacion] WITH CHECK ADD CONSTRAINT [FK_mariposa_observacion_ejemplar] FOREIGN KEY([id_mariposa])<br />REFERENCES [dbo].[ejemplar] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[mariposa_observacion] CHECK CONSTRAINT [FK_mariposa_observacion_ejemplar]<br />GO<br />ALTER TABLE [dbo].[nombre_comun] WITH CHECK ADD CONSTRAINT [FK_nombre_comun_especie] FOREIGN KEY([id_especie])<br />REFERENCES [dbo].[especie] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[nombre_comun] CHECK CONSTRAINT [FK_nombre_comun_especie]<br />GO<br />ALTER TABLE [dbo].[nombre_comun] WITH CHECK ADD CONSTRAINT [FK_nombre_comun_zona_geografica] FOREIGN KEY([id_zona])<br />REFERENCES [dbo].[zona_geografica] ([id])<br />ON UPDATE CASCADE<br />ON DELETE CASCADE<br />GO<br />ALTER TABLE [dbo].[nombre_comun] CHECK CONSTRAINT [FK_nombre_comun_zona_geografica]<br />GO<br />MANIPULACION DE LA BASE DE DATOS<br />Creacion de vistas<br />Obtener la informacion correspondiente a las especies de mariposas existentes en la base de datos, las cuales han sido capturadas despues de abril de 1999<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[Especie_Capturada]<br />AS<br />SELECT dbo.especie.nombre_especie AS Especie<br />FROM dbo.especie INNER JOIN<br /> dbo.ejemplar ON dbo.especie.id = dbo.ejemplar.id_especie<br />WHERE (dbo.ejemplar.fec_captura >= CONVERT(DATETIME, '1999-05-01 00:00:00', 102))<br />GO<br />Obtener los diferentes nombres comunes y los nombres cientificos de cada una de las especies cuyos ejemplares hayan sido capturados entre los anos 1996 y 1997, todos ellos ordenados por el nombre de la zona.<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[Nombres]<br />AS<br />SELECT TOP (100) PERCENT dbo.especie.nombre_cientifico, dbo.nombre_comun.nombre_comun<br />FROM dbo.especie INNER JOIN<br /> dbo.ejemplar ON dbo.especie.id = dbo.ejemplar.id_especie INNER JOIN<br /> dbo.zona_geografica ON dbo.ejemplar.id_zona = dbo.zona_geografica.id INNER JOIN<br /> dbo.nombre_comun ON dbo.especie.id = dbo.nombre_comun.id_especie<br />WHERE (DATEPART(yyyy, dbo.ejemplar.fec_captura) BETWEEN 1996 AND 1997)<br />ORDER BY dbo.zona_geografica.zona<br />GO<br />Obtener la mariposa mas cara y mas barata de todas las capturadas, la persona quien la capturo y a que colección pertenece.<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[Cara_Barata]<br />AS<br />SELECT dbo.mariposa_coleccion.precio AS Precio, dbo.persona.nombre, dbo.coleccion.nombre AS Coleccion<br />FROM dbo.persona INNER JOIN<br /> dbo.ejemplar ON dbo.persona.id = dbo.ejemplar.id_capturador INNER JOIN<br /> dbo.mariposa_coleccion ON dbo.ejemplar.id = dbo.mariposa_coleccion.id_mariposa INNER JOIN<br /> dbo.coleccion ON dbo.mariposa_coleccion.id_coleccion = dbo.coleccion.id<br />WHERE (dbo.mariposa_coleccion.precio =<br /> (SELECT MAX(precio) AS Expr1<br /> FROM dbo.mariposa_coleccion AS mariposa_coleccion_1))<br />UNION<br />SELECT mariposa_coleccion_2.precio AS Precio, persona_1.nombre, coleccion_1.nombre AS Expr1<br />FROM dbo.persona AS persona_1 INNER JOIN<br /> dbo.ejemplar AS ejemplar_1 ON persona_1.id = ejemplar_1.id_capturador INNER JOIN<br /> dbo.mariposa_coleccion AS mariposa_coleccion_2 ON ejemplar_1.id = mariposa_coleccion_2.id_mariposa INNER JOIN<br /> dbo.coleccion AS coleccion_1 ON mariposa_coleccion_2.id_coleccion = coleccion_1.id<br />WHERE (mariposa_coleccion_2.precio =<br /> (SELECT MIN(precio) AS Expr1<br /> FROM dbo.mariposa_coleccion AS mariposa_coleccion_1))<br />GO<br />Obtener la familia de las mariposas cuyos ejemplares han sido liberados. <br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[familias_liberadas]<br />AS<br />SELECT DISTINCT dbo.familia.familia<br />FROM dbo.familia INNER JOIN<br /> dbo.genero ON dbo.familia.id = dbo.genero.id_familia INNER JOIN<br /> dbo.especie ON dbo.genero.id = dbo.especie.id_genero INNER JOIN<br /> dbo.ejemplar ON dbo.especie.id = dbo.ejemplar.id_especie<br />WHERE (dbo.ejemplar.id_para = 1)<br />GO<br />Obtener la informacion sobre las familias, generos y especies de mariposas que nunca hayan sido capturados.<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[Info_familia_genero_especie]<br />AS<br />SELECT DISTINCT dbo.especie.nombre_especie, dbo.genero.genero, dbo.familia.familia<br />FROM dbo.especie INNER JOIN<br /> dbo.genero ON dbo.especie.id_genero = dbo.genero.id INNER JOIN<br /> dbo.familia ON dbo.genero.id_familia = dbo.familia.id<br />except<br />SELECT DISTINCT dbo.especie.nombre_especie, dbo.genero.genero, dbo.familia.familia<br />FROM dbo.ejemplar INNER JOIN<br /> dbo.especie ON dbo.ejemplar.id_especie = dbo.especie.id INNER JOIN<br /> dbo.genero ON dbo.especie.id_genero = dbo.genero.id INNER JOIN<br /> dbo.familia ON dbo.genero.id_familia = dbo.familia.id<br />GO<br />Obtener ordenadas por el numero de capturas informacion de las zonas geograficas en las que se hayan realizado mas de 6 capturas.<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[Zona_Mas6Capturas]<br />AS<br />SELECT TOP (100) PERCENT dbo.zona_geografica.zona, COUNT(dbo.ejemplar.id) AS [Numero Mariposas]<br />FROM dbo.zona_geografica INNER JOIN<br /> dbo.ejemplar ON dbo.zona_geografica.id = dbo.ejemplar.id_zona<br />GROUP BY dbo.zona_geografica.zona<br />HAVING (COUNT(dbo.ejemplar.id) > 6)<br />ORDER BY [Numero Mariposas]<br />GO<br />Crear una vista para todas las colecciones iniciadas a partir de 1996 y que permita consultar simultaneamente los atributos dni, nombre, apellidos y precio estimado.<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[Colecciones_iniciadas]<br />AS<br />SELECT dbo.coleccion.nombre AS Coleccion, dbo.coleccion.valor_estimado, dbo.persona.nombre, dbo.persona.apellidos, dbo.persona.DNI<br />FROM dbo.coleccion INNER JOIN<br /> dbo.persona ON dbo.coleccion.id_dueño = dbo.persona.id<br />WHERE (DATEPART(yyyy, dbo.coleccion.fec_inicio) >= 1996)<br />GO<br />Realizar una consulta sobre la vista colección<br />SELECT * FROM Colecciones_iniciadas<br />SELECT * FROM Colecciones_iniciadas WHERE valor_estimado>10000 <br />SELECT nombre, coleccion, valor_estimado FROM Colecciones_iniciadas WHERE DNI='0801-1985-54561’<br />Obtener la informacion de las personas que han capturado ejemplares antes del 5 de noviembre de 1980, pero que no tienen ninguna colección.<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />CREATE VIEW [dbo].[personas_sinColeccion]<br />AS<br />SELECT DISTINCT dbo.persona.id, dbo.persona.nombre, dbo.persona.apellidos, dbo.persona.DNI<br />FROM dbo.persona INNER JOIN<br /> dbo.ejemplar ON dbo.persona.id = dbo.ejemplar.id_capturador<br />WHERE (dbo.ejemplar.fec_captura < '5-11-1980')<br />except<br />SELECT dbo.persona.id, dbo.persona.nombre, dbo.persona.apellidos, dbo.persona.DNI<br />FROM dbo.persona INNER JOIN<br /> dbo.coleccion ON dbo.persona.id = dbo.coleccion.id_dueño<br />GO<br /> Actualizar el valor estimado de las colecciones a valor real de la suma de los ejemplares que la componen.<br />GO<br />CREATE PROCEDURE [dbo].[actualizar_precio_estimado]<br />AS<br />BEGIN<br />-- SET NOCOUNT ON added to prevent extra result sets from<br />-- interfering with SELECT statements.<br />SET NOCOUNT ON;<br />update coleccion set valor_estimado = (select sum(precio) from mariposa_coleccion where id_coleccion =id)<br />END<br />GO<br /> Actualizar el precio de los ejemplares de las colecciones de nuestra base de datos en un tanto porciento dado y según el precio de los mismos, considerar la existencia de tres intervalos: menor de 7000, de 7000 a 10000 y mayor de 10000.<br />GO<br />CREATE PROCEDURE [dbo].[actualizar_PrecioEjemplares] <br />@porcentaje real<br />AS<br />BEGIN<br />-- SET NOCOUNT ON added to prevent extra result sets from<br />-- interfering with SELECT statements.<br />SET NOCOUNT ON;<br /> update mariposa_coleccion set precio= (case when precio<7000 then precio*(1+@porcentaje) when precio>=7000 and precio<10000 then precio*(1+(2*(@porcentaje))) else precio*(1+(3*(@porcentaje))) end)<br />END<br />GO<br />CONCLUSIONES<br />Para ayuda de resolucion del problema se tuvieron que crear algunas vistas el motor para facilitar la visualizacion de los datos requeridos.<br />El uso de los procedimientos hace que sea mas facil la manipulacion de la base de datos.<br />Se considero cada supuesto planteado al inicio del problema para la delimitacion del mismo. <br />