close

Вход

Забыли?

вход по аккаунту

код для вставкиСкачать
ФГБОУ ВПО
Дагестанский Государственный Технический Университет
Факультет Информатики и управления
Кафедра ВТ
Курсовая работа
по дисциплине
«Базы данных»
На тему
«БД телефонного справочника»
Выполнил: студент 3-го курса
Группы У-941
Хачабегов А.З.
Проверил: Ст. пр. к.т.н.
Джанмурзаев А.А.
Махачкала 2012 г
Аннотация
В данной курсовой работе предусмотрено решение задачи связанной с
работой с базами данных. Программа реализована на языке PHP. Проведена
работа по тестированию и устранению ошибок.
Курсовая работа содержит:
26 листов
11 рисунков
2
Содержание
Введение…..………………………………………………………………4
1.Инфологическая модель …..…………………………………………..10
2.Даталогическая модель …….………………………………………….11
3.Описание сайта…………………………………………………………12
4. Внешний вид сайта…………………………………………………….13
Заключение ……………………………………………………………….16
Список литературы ……………………………………………………....17
Приложение ………………………………………………………………18
3
Введение
1.Данные и ЭВМ.
Восприятие реального мира можно соотнести с последовательностью
разных, хотя иногда и взаимосвязанных, явлений. С давних времен люди
пытались описать эти явления (даже тогда, когда не могли их понять). Такое
описание называют данными.
Применение ЭВМ для ведения и обработки данных обычно приводит к
еще большему разделению данных и интерпретации. ЭВМ имеет дело
главным образом с данными как таковыми. Большая часть
интерпретирующей информации вообще не фиксируется в явной форме.
Существует по крайней мере две исторические причины, по которым
применение ЭВМ привело к отделению данных от интерпретации. Вопервых, ЭВМ не обладали достаточными возможностями для обработки
текстов на естественном языке – основном языке интерпретации данных. Вовторых, стоимость памяти ЭВМ была первоначально весьма велика. Память
использовалась для хранения самих данных, а интерпретация традиционно
возлагалась на пользователя.
Жесткая зависимость между данными и использующими их
программами создает серьезные проблемы в введении данных и делает
использование их менее гибкими.
Нередки случаи, когда пользователи одной и той же ЭВМ создают и
используют в своих программах разные наборы данных, содержащие
сходную информацию. Иногда это связано с тем, что пользователь не знает
(либо не захотел узнать), что в соседней комнате или за соседним столом
сидит сотрудник, который уже давно ввел в ЭВМ нужные данные. Чаще
потому, что при совместном использовании одних и тех же данных возникает
масса проблем. Разработчики прикладных программ (написанных, например,
на Бейсике, Паскале или Си) размещают нужные им данные в файлах,
организуя их наиболее удобным для себя образом. При этом одни и те же
данные могут иметь в разных приложениях совершенно разную организацию
(разную последовательность размещения в записи, разные форматы одних и
тех же полей и т.п.). Обобществить такие данные чрезвычайно трудно:
например, любое изменение структуры записи файла, производимое одним
из разработчиков, приводит к необходимости изменения другими
разработчиками тех программ, которые используют записи этого файла.
Опыт применения ЭВМ для построения прикладных систем обработки
данных показывает, что самым эффективным инструментом здесь являются
не универсальные алгоритмы языка высокого уровня (специализированные
языки для создания систем управления данными (Fox Pro, Oracle)).
Пакет систем управления БД дают возможность пользователям
осуществлять управление данными, а программистам быстрее разрабатывать
новые программные средства их обработки. Характеристики готовых
4
прикладных пакетов
организацией данных.
определяется
прежде
всего
принятой
СУБД
2. Базы Данных , способы представления , модели данных.
Базы Данных (БД) представляют собой совокупность данных,
структурированных определенным образом по определенной тематике,
применяющихся в различных отраслях экономики, промышленности,
бизнеса и науки. Скорость доступа к нужной информации, оперативность ее
получения определяют, в конечном итоге, успешное ведение бизнеса и
уменьшают затраты на соответствующие статьи доходов. Разработаны
методы, которые облегчают работу с большим объемом данных: создание баз
данных, выполнение поиска, редактирование, извлечение различных
выборок, а также проведение анализа данных и оформления расчетов,
которые содержат итоговые документы и данные в виде таблиц, диаграмм и
графиков. Эти методы реализуются с помощью комплекса программных
средств, обеспечивающих работу с БД - системой управления базой данных
(СУБД).
Известно много программных продуктов, позволяющих создавать и
работать с БД, например, Access, Clipper, Excel и другие. Среди большого
разнообразия программ наибольшей популярностью пользуется СУБД
FoxPro, которая по своим характеристикам удовлетворяет самым высоким
требованиям, предъявляемым к такого типа системам как по уровню и
объему, так и по скорости обработки информации.
На данный момент разработано и широко используется Visual FoxPro
для Windows версий 3.0 и 5.0. Однако, работа с этими пакетами для
непрограммистов представляет собой довольно сложную задачу. Поэтому
для создания БД
для пользователей, имеющих небольшой опыт в
программировании , очень удачными являются версии 2.5 и 2.6 под Windows
и 2.0 под DOS.
2.1. Инфологическая модель.
Инфологическая модель отображает реальный мир в некоторые
понятные человеку концепции, полностью независимые от параметров среды
хранения данных. Существует множество подходов к построению таких
моделей: графовые модели, семантические сети, модель "сущность-связь" и
т.д.. Наиболее популярной из них оказалась модель "сущностьсвязь",которая будет рассмотрена далее. Инфологическая модель должна
быть отображена в компьютеро-ориентированную даталогическую модель,
"понятную" СУБД. В процессе развития теории и практического
использования баз данных, а также средств вычислительной техники
создавались СУБД, поддерживающие различные даталогические модели.
Сначала стали использовать иерархические даталогические модели. Простота
организации, наличие заранее заданных связей между сущностями, сходство
с физическими моделями данных позволяли добиваться приемлемой
производительности иерархических СУБД на медленных ЭВМ с весьма
5
ограниченными объемами памяти. Но, если данные не имели древовидной
структуры, то возникала масса сложностей при построении иерархической
модели и желании добиться нужной производительности.
Сетевые модели также создавались для мало ресурсных ЭВМ. Это
достаточно сложные структуры, состоящие из "наборов" – поименованных
двухуровневых деревьев. "Наборы" соединяются с помощью "записейсвязок", образуя цепочки и т.д. При разработке сетевых моделей было
выдумано множество "маленьких хитростей", позволяющих увеличить
производительность СУБД, но существенно усложнивших последние.
Прикладной программист должен знать массу терминов, изучить несколько
внутренних языков СУБД, детально представлять логическую структуру
базы данных для осуществления навигации среди различных экземпляров,
наборов, записей и т.п. Один из разработчиков операционной системы UNIX
сказал "Сетевая база – это самый верный способ потерять данные".
Сложность практического использования иерархических и и сетевых СУБД
заставляла искать иные способы представления данных. В конце 60-х годов
появились СУБД на основе инвертированных файлов, отличающиеся
простотой
организации
и
наличием
весьма
удобных
языков
манипулирования данными. Однако такие СУБД обладают рядом
ограничений на количество файлов для хранения данных, количество связей
между ними, длину записи и количество ее полей. Физическая организация
данных оказывает основное влияние на эксплуатационные характеристики
БД. Разработчики СУБД пытаются создать наиболее производительные
физические модели данных, предлагая пользователям тот или иной
инструментарий для поднастройки модели под конкретную БД. Разнообразие
способов корректировки физических моделей современных промышленных
СУБД не позволяет рассмотреть их в этом разделе.
Инфологическая модель данных. Сущность-связь.Основные понятия
Цель инфологического моделирования – обеспечение наиболее
естественных для человека способов сбора и представления той информации,
которую предполагается хранить в создаваемой базе данных. Поэтому
инфологическую модель данных пытаются строить по аналогии с
естественным языком ( последний не может быть использован в чистом виде
из-за сложности компьютерной обработки текстов и неоднозначности
любого естественного языка).Основными конструктивными элементами
инфологических моделей являются сущности, связи между ними и их
свойства (атрибуты).
Сущность – любой различимый объект (объект, который мы можем
отличить от другого), информацию о котором необходимо хранить в базе
данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и
т.д. Необходимо различать такие понятия, как тип сущности и экземпляр
сущности. Понятие тип сущности относится к набору однородных
личностей, предметов, событий или идей, выступающих как целое.
Экземпляр сущности относится к конкретной вещи в наборе.
6
Атрибут – поименованная характеристика сущности. Его
наименование должно быть уникальным для конкретного типа сущности, но
может быть одинаковым для различного типа сущностей.
Абсолютное различие между типами сущностей и атрибутами
отсутствует. Атрибут является таковым только в связи с типом сущности. В
другом контексте атрибут может выступать как самостоятельная сущность.
Ключ – минимальный набор атрибутов, по значениям которых можно
однозначно найти требуемый экземпляр сущности. Минимальность означает,
что исключение из набора любого атрибута не позволяет идентифицировать
сущность по оставшимся.
Связь – ассоциирование двух или более сущностей. Если бы
назначением базы данных было только хранение отдельных, не связанных
между собой данных, то ее структура могла бы быть очень простой. Однако
одно из основных требований к организации базы данных – это обеспечение
возможности отыскания одних сущностей по значениям других, для чего
необходимо установить между ними определенные связи. А так как в
реальных базах данных нередко содержатся сотни или даже тысячи
сущностей, то теоретически между ними может быть установлено более
миллиона связей. Наличие такого множества связей и определяет сложность
инфологических моделей.
2.2 Построение инфологической модели
Под инфологической моделью можно представить крышу дома.
Инфологическая модель эта ядро, естественность. Дотологическую мы
сравниваем с фундаментом дома, служит для удержания всего дома и крыши
(инфологической модели) в частности. Дотологическая – это формальность.
Формальность служит для удержания естественности в определенных
рамках.
Компоненты инфологической модели
Определение информационной
потребности пользователя
ER-модель
Модель сущности.
Связь.
ИЛМ
Агрегированные показатели
Лингвыстическая модель
Правила создания
Инфологической модели
Ограничение целостности
ER-модель это модель связи.
Лингвистические отношения - это
синтаксис создания инфологической модели.
E=m*c^2
правописание
орфография,
7
Ограничение целостности –это например человек ведет себя чересчур
естественно быстро едет на машине у него нет ограничений своей
естественности то это ограничение находится на дороге Столб например.
Чтобы такая ситуация не возникала в человеке должен быть
ограничитель своей естественности.
Агрегированные показатели например формула.
Инфологическая модель является средством коммуникации.
Кроме связи между объектами и их свойствами в инфологической
модели фиксируются связи межу объектами разных классов типа: один ко
одному, один ко многим, многие к одному, многие ко многим.
Примером связи один ко многим может послужить предприятие на
котором некоторые работники знают по одному иностранному языку.
Некоторые знают один и тот же язык.
Примером связи дин ко многим может служить какая-нибудь
организация где некоторые служащие знают несколько иностранных языков.
Примером связи многие к одному может служить университет где
несколько студентов знают один и тот же иностранный язык.
Примером связи многие ко многим может служить лингвистический
институт где каждый из сотрудников знает несколько иностранных языков.
Построение инфологической модели связи студент – преподаватель
Диаграмма ER-модели
Диаграмма ER-экземпляров
Студент
преподаватель
студент
преподаватель
С1
П1
ФИО
ФИО
С2
П2
С3
П3
С4
П4
С5
П5
С6
П6
С7
П7
8
2.3. Датологическая модель
Даталогическая модель является моделью логического уровня и
представляет собой отображение логических связей между элементами
данных без рассмотрения их содержания и среды хранения.
Инфологическая модель
ДЛМ
Естественность
Схема, формальность
Физическая модель
Датологическая модель сравнима со схемой, здесь всё четка должно
быть расписано что, как и когда должны делать.
Датологическая модель находится как в ограниченном состоянии,
сверху её ограничивает инфологическая модель, а снизу физическая модель.
Если инфологическая модель это естественность человека, то датологическая
модель это формальность человека, а физическая модель и вовсе физическое
состояние человека.
Если у человека хорошая датологическая модель то он может найти
себе работу, жильё, питание и деньги в любом месте куда бы его не
забросила жизнь. Человек у которого не развита датологическая модель он не
сможет выбраться из жизненных передряг, станет жаловаться на жизнь, что у
него все плохо, он не может найти работу и т.д..
Для того, чтобы датологическая модель была хорошо развита должна
быть хорошо развита и физическая модель, физически человек должен быть
хорошо развит. Если человек больной, слабый то у него датологическая
модель слабая, схема жизни слабая.
9
1.ER-модель «Телефонного справочника»
2.Инфологическая модель «Телефонного справочника»
Справочник
Номер записи
D
D
р
Персона
D
Адрес
S
Телефоны
10
2.Датологическая модель «Телефонного справочника»
Связь 1:1 и обязательный класс принадлежности одной из сущностей
R1(idperson, fam, imya )
R2(person_idperson, idadress, ulica,dom,kvartira) .
R1
R2
Связь 1:N и класс принадлежности нескольких сущностей
R3(aperson_idperson, idtel, domtel, mobtel)
R1
R3
R1 – таблица 1
R2 – таблица 2
R3 – таблица 3
11
Описание программы
Программа предназначена для вывода информации о телефонном
справочнике. В программе предусмотрены следующие возможности:
Добавление данных – для расширения самой БД; Просмотр – возможен
просмотр данных, сначала просматривается главная страница и при выборе
ссылки сортировки выводится все записи отсортированные по полю
фамилия; Фильтрация- осуществляется по четырем полям фамилия, улица,
мобильный телефон, домашний телефон. Выход – осуществляется выходом
из браузера.
12
Внешний вид сайта
Главная страница:
13
Страница поиска
14
Добавление записи
15
Заключение
При выполнении данной курсовой работы мною были приобретены
навыки разработки информационно – справочной системы и работы в ней.
Также были приобретены навыки создания программных продуктов на языке
PHP и работы с БД. При выполнении курсовой работы значительных
трудностей не возникало, били некоторые сложности в разработке
программного продукта. В ходе выполнения курсовой работы я закрепил
знания по дисциплине БД.
16
Список литературы
1.Методические указание по дисциплине БД.
2.Курс лекций по дисциплине БД за 2011 год.
3.SQL: Полное руководство: пер. с англ.—2 издание, переработанное и
дополненное — К.: Издательская группа BHV, 2001.— 816 с., ил.
17
Приложение
Index.php
<?php
include ("db.php");
mysql_set_charset( "utf8", $db );
$res = mysql_query("SELECT * from person, tel, adress
where person.id_person=tel.id_tel and
person.id_person=adress.id_adress", $db);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8">
<title>Телефонный справочник</title>
<link href="style.css" rel="stylesheet"
type="text/css">
</head>
<body>
<div id="wrapper">
<div id="site_title_bar">
<div id="menu">
<img src="images/header_menu.png" width="800"
height="45" alt="menu" usemap="#forLink">
<map id="forLink" name="forLink">
<area href="index.php" shape="rect" coords="70,
10, 169, 39">
<area href="find.php" shape="rect" coords="340,
10, 440, 39">
<area href="add.php" shape="rect" coords="619,
10, 720, 39">
</map>
</div>
<div id="left_menu">
<div>
<h2>Телефонный справочник</h2>
</div>
18
<img src="images/tel_apparat.png" width="260"
height="192"></div>
</div>
</div>
<div id="content" class="box">
<div class="arrow">Главная
</div>
<div id="left_content">Телефонный справочник</div>
<div id="content_table">
<?php echo "<TABLE BORDER ='1'>";
echo "<TR>";
echo "<TH> № </TH>
<TH>Фамилия</TH>
<TH>Имя</TH>
<TH>Год рождения</TH>
<TH>Улица</TH>
<TH>Дом</TH>
<TH>Кваритра</TH>
<TH>Домашний телефон</TH>
<TH>Мобильный телефон</TH>";
echo "</TR>";
while ($row=mysql_fetch_array ($res))
{
echo "<TR>";
echo "<TD>", $row ['id_person'], "</TD>
<TD>", $row ['SurName'],"</TD>
<TD>", $row ['FName'],"</TD>
<TD>", $row ['Date_Roj'],"</TD>
<TD>", $row ['Street'],"</TD>
<TD>", $row ['home'],"</TD>
<TD>", $row ['kvartira'],"</TD>
<TD>", $row ['home_tel'],"</TD>
<TD>", $row ['mob_tel'], "</TD>";
echo "<TR>";
}
echo "</TABLE>";
?>
19
</div>
</div>
<div id="footer_wrapper">
<div id="footer">
<p align="center">CopyRight <a href="http://u941.ru"
target="_new">Группа У941</a> 2012<p>
</div>
</div>
</body>
</html>
Db.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
<title>Документ без названия</title>
</head>
<?php
$db =
mysql_connect("localhost","general","123321");
mysql_select_db("kur_tel_base",$db);
?>
<body>
</body>
</html>
Find.php
<?php
include ("db.php");
#mysql_set_charset( "utf8", $db );
20
mysql_query("set names 'utf8'");
if ($_GET[pole]=='') {
$res = mysql_query("SELECT * from person, tel, adress
where person.id_person=tel.id_tel and
person.id_person=adress.id_adress", $db);
} else {
$str = $_GET[pole];
$res = mysql_query("SELECT * from person, tel, adress
where person.id_person=tel.id_tel and
person.id_person=adress.id_adress and
".$_GET[find_form]." like '%$str%'", $db);
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8">
<title>Телефонный справочник</title>
<link href="style.css" rel="stylesheet"
type="text/css">
</head>
<body>
<div id="wrapper">
<div id="site_title_bar">
<div id="menu">
<img src="images/header_menu.png" width="800"
height="45" alt="menu" usemap="#forLink">
<map id="forLink" name="forLink">
<area href="index.php" shape="rect" coords="70,
10, 169, 39">
<area href="find.php" shape="rect" coords="340,
10, 440, 39">
<area href="add.php" shape="rect" coords="619,
10, 720, 39">
</map>
</div>
<div id="left_menu">
<div>
<h2>Телефонный справочник</h2>
21
</div>
<img src="images/tel_apparat.png" width="260"
height="192"></div>
</div>
</div>
<div id="content" class="box">
<div class="arrow">Поиск</div>
<div id="left_content">Телефонный справочник - Поиск
</div>
<div id="content_table">
<div id="content_find_form" >
Форма поиска
</div>
<form action="find.php" name="form2" method="get">
<label > Выберите тип поиска : <select
name="find_form">
<option value="FName">По имени</option>
<option value="SurName">По фамилии</option>
<option value="Street">По улице</option>
<option value="home_tel">По домашнему
телефону</option>
<option value="home_tel">По мобильному
телефону</option>
</select> </label>
<label> Текст для поиска : <input type="text"
name="pole" size="25"></label>
<input type="submit" name="find" value="Поиск"
onClick="getdata()">
</form>
</div>
<div id="content_table">
<?php
echo "<TABLE BORDER ='1'>";
echo "<TR>";
echo "<TH> № </TH>
<TH>Фамилия</TH>
22
<TH>Имя</TH>
<TH>Год рождения</TH>
<TH>Улица</TH>
<TH>Дом</TH>
<TH>Кваритра</TH>
<TH>Домашний телефон</TH>
<TH>Мобильный телефон</TH>";
echo "</TR>";
while ($row=mysql_fetch_array ($res))
{
echo "<TR>";
echo "<TD>", $row ['id_person'], "</TD>
<TD>", $row ['SurName'],"</TD>
<TD>", $row ['FName'],"</TD>
<TD>", $row ['Date_Roj'],"</TD>
<TD>", $row
<TD>", $row
<TD>", $row
<TD>", $row
<TD>", $row
echo "<TR>";
}
echo "</TABLE>";
['Street'],"</TD>
['home'],"</TD>
['kvartira'],"</TD>
['home_tel'],"</TD>
['mob_tel'], "</TD>";
?>
</div>
</div>
<div id="footer_wrapper">
<div id="footer">
<p align="center">CopyRight <a href="http://u941.ru"
target="_new">Группа У941</a> 2012<p>
</div>
</div>
</body>
</html>
23
Add_base.php
<?php header( 'Location: add.php', true, 303 );
include ("db.php");
mysql_set_charset( "utf8", $db );
$res = mysql_query("INSERT INTO person (SurName,
FName, Date_Roj) VALUES ('$_GET[SurName]',
'$_GET[fName]', '$_GET[god_roj]')");
$res = mysql_query("INSERT INTO adress (Street, home,
kvartira) VALUES ('$_GET[Street]', '$_GET[dom]',
'$_GET[kvartira]')");
$res = mysql_query("INSERT INTO tel (home_tel,
mob_tel) VALUES ('$_GET[dom_tel]', '$_GET[mob_tel]')");
?>
Add.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8">
<title>Телефонный справочник</title>
<link href="style.css" rel="stylesheet"
type="text/css">
</head>
<body>
<div id="wrapper">
<div id="site_title_bar">
<div id="menu">
<img src="images/header_menu.png" width="800"
height="45" alt="menu" usemap="#forLink">
<map id="forLink" name="forLink">
<area href="index.php" shape="rect" coords="70,
10, 169, 39">
<area href="find.php" shape="rect" coords="340,
10, 440, 39">
<area href="add.php" shape="rect" coords="619,
10, 720, 39">
24
</map>
</div>
<div id="left_menu">
<div>
<h2>Телефонный справочник</h2>
</div>
<img src="images/tel_apparat.png" width="260"
height="192"></div>
</div>
</div>
<div id="content" class="box">
<div class="arrow" >Добавить</div>
<div id="left_content">Телефонный справочник Добавить</div>
<div id="left_content_l">Форма добавления новой записи
</div>
<p>&nbsp;</p>
<div id="content_table">
<form action="add_base.php" method="get" name="form1">
<p><label>Введите Фамилию<img src="images/user.png"
width="256" height="256" alt="user"> :
<input type="text" name="SurName"
size="24"></label></p>
<p><label>Введите Имя :
<input type="text"
name="fName" size="30"></label></p>
<p><label>Введите Год рождения : <input type="text"
name="god_roj" size="17"></label></p>
<p><label>Введите Улицу :
<input type="text"
name="Street" size="26"></label></p>
<p><label>Введите Номер дома :
<input type="text"
name="dom" size="19"></label></p>
<p><label>Введите Номер квартиры : <input type="text"
name="kvartira" size="13"></label></p>
<p><label>Введите Номер мобильного : <input
type="text" name="mob_tel" size="20"></label></p>
<p><label>Введите Номер домашнего : <input
type="text" name="dom_tel" size="21"></label></p>
<input type="submit" name="submit" value="Сохранить
">
</form>
</div>
</div>
25
<div id="footer_wrapper">
<div id="footer">
<p align="center">CopyRight <a href="http://u941.ru"
target="_new">Группа У941</a> 2012<p>
</div>
</div>
</body>
</html>
26
1/--страниц
Пожаловаться на содержимое документа