Автор работы: Пользователь скрыл имя, 15 Мая 2013 в 11:38, реферат
With development of the modern informative systems and network technologies, specialists get the new possibilities, related to the search, treatment, storage and information transfer. Large volume of transferrable, subzero speed the transmissions and risks, related to the imperfect methods of paper circulation of documents, undesirable expenses - these and many other factors bring participants over of market to the necessity more actively to use modern information technologies. Application of computer treatment of information and of informatively-communication systems for communication of data allows to get the considerable winning in exactness, speed, reliability and efficiency of circulation of documents and, in final analysis, winning in efficiency of marketing activity.
• имя поля – определяет, как следует обращаться к данным этого поля при автоматических операциях с базой (по умолчанию имена полей используются в качестве заголовков столбцов таблиц).
• тип поля – определяет тип данных, которые могут содержаться в данном поле.
• размер поля – определяет предельную длину (в символах) данных, которые могут размещаться в данном поле.
• формат поля – определяет способ форматирования данных в ячейках, принадлежащих полю.
• маска ввода – определяет форму, в которой вводятся данные а поле (средство автоматизации ввода данных).
• подпись – определяет заголовок столбца таблицы для данного поля (если подпись не указана, то в качестве заголовка столбца используется свойство Имя поля).
• значение по умолчанию – то значение, которое вводится в ячейки поля автоматически (средство автоматизации ввода данных).
• условие на значение – ограничение, используемое для проверки правильности ввода данных (средство автоматизации ввода, которое используется, как правило, для данных, имеющих числовой тип, денежный тип или тип даты).
• сообщение об ошибке – текстовое сообщение, которое выдается автоматически при попытке ввода в поле ошибочных данных.
• обязательное поле – свойство, определяющее обязательность заполнения данного поля при наполнении базы.
• пустые строки – свойство, разрешающее ввод пустых строковых данных (от свойства Обязательное поле отличается тем, что относится не ко всем типам данных, а лишь к некоторым, например к текстовым).
• индексированное поле – если поле обладает этим свойством, все операции, связанные с поиском или сортировкой записей по значению, хранящемуся в данном поле, существенно ускоряются. Кроме того, для индексированных полей можно сделать так, что значение в записях будут проверяться по этому полю на наличие повторов, что позволяет автоматически исключить дублирование данных.
Поскольку в разных полях могут содержаться данные разного типа, то и свойства у полей могут различаться в зависимости от типа данных. Так, например, список вышеуказанных свойств полей относится в основном к полям текстового типа. Поля других типов могут иметь или не иметь эти свойства, но могут добавлять к ним и свои. Например, для данных, представляющих действительные числа, важным свойством является количество знаков после десятичной запятой. С другой стороны, для полей, используемых для хранения рисунков, звукозаписей, видео клипов и других объектов, большинство вышеуказанных свойств не имеют смысла.
1.5 Типы данных
Таблицы баз данных, как правило, допускают работу с гораздо большим количеством разных типов данных. Так, например, базы данных работают со следующими типами данных.
• текстовый – тип данных, используемый для хранения обычного неформатированного текста ограниченного размера (до 255 символов).
• числовой – тип данных для хранения действительных чисел.
• поле Мемо – специальный тип данных для хранения больших объемов текста (до 65 535 символов). Физически текст не хранится в поле. Он храниться в другом месте базы данных, а в поле храниться указатель на него, но для пользователя такое разделение заметно не всегда.
• дата/время – тип данных для хранения календарных дат и текущего времени.
• денежный - тип данных для хранения денежных сумм. Теоретически, для их записи можно было бы пользоваться и полями числового типа, но для денежных сумм есть некоторые особенности (например, связанные с правилами округления), которые делают более удобным использование специального типа данных, а не настройку числового типа.
• счетчик – специальный тип данных для уникальных (не повторяющихся в поле) натуральных чисел с автоматическим наращиванием. Естественное использование – для порядковой нумерации записей.
• логический - тип для хранения логических данных (могут принимать только два значения, например Да или Нет).
• гиперссылка – специальное поле для хранения адресов URL Web-объектов Интернета. При щелчке на ссылке автоматически происходит запуск браузера и воспроизведение объекта в его окне.
• мастер подстановок – это не специальный тип данных. Это объект, настройкой которого можно автоматизировать ввод данных в поле так, чтобы не вводить их вручную, а выбирать их из раскрывающегося списка.
1.6 Безопасность баз данных
Базы данных – это тоже
файлы, но работа с ними отличается
от работы с файлами других типов,
создаваемых прочими
Базы данных – это особые
структуры. Информация, которая в
них содержится, очень часто имеет
общественную ценность. Нередко с
одной и той же базой работают
тысячи людей по всей стране. От информации,
которая содержится в некоторых
базах, может зависеть благополучие
множества людей. Поэтому целостность
содержимого базы не может и не
должна зависеть ни от конкретных действий
некоего пользователя, забывшего
сохранить файлы перед
Проблема безопасности баз данных решается тем, что в СУБД для сохранения информации используется двойной подход. В части операций, как обычно, участвует операционная система компьютера, но некоторые операции сохранения происходят в обход операционной системы.
2 ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ
2.1 Режимы работы с базами данных
Обычно с базами данных
работаю две категории
Вторая категория исполнителей, работающих с базами данных, - пользователи. Они получают исходную базу данных от проектировщиков и занимаются ее наполнением и обслуживанием. В общем случае пользователи не имеют средств доступа к управлению структурой базы – только к данным, да и то не ко всем, а к тем, работа с которыми предусмотрена на конкретном рабочем месте. Соответственно СУБД имеет два режима работы: проектировочный и пользовательский. Первый режим предназначен для создания или изменения структуры базы и создание ее объектов. Во втором режиме происходит использование ранее подготовленных объектов для наполнения базы или получения данных из нее.
2.2 Объекты базы данных
2.2.1 Таблицы
Таблицы – это основные объекты любой базы данных. Во-первых, в таблицах хранятся все данные, имеющиеся в базе, а во-вторых, таблицы хранят и структуру базы (поля, их типы и свойства).
Figure 2.1 – Database on MySQL
Figure 2.2 – Database on MySQL
Figure 2.3 – Database on MySQL
Figure 2.4 – Database on PostgreSQL
Figure 2.5 – Database on PostgreSQL
2.8 Applications programming
In parallel with design of system of a database applications programming is carried out. The main components of this process — this design of transactions and the user interface.
For the project which is intended for interbank data exchange two databases are used: MySQL and PostgreSQL.
Also, web portal in the php language with XML use.
If to pass to a part the coding, the web page goes the first.
In the index.php document the main code of a portal is written.
<?php
if(isset($_POST) && $_POST['cmd'] == 'copyPtoM'){ //kopiruem iz PostgreSQL v MySQL
$pdb = pg_connect('host=localhost dbname=testdb user=postgres password=root') or die(pg_last_error()); // localhost - адрес сервера бд PostgreSQL, testdb - имя бд, postgres - логин, postgres - пароль
$result = pg_query("select * from source") or die(pg_last_error());
$str = '<?xml version="1.0" encoding="utf-8"?>';
$str .= "<root>";
while($line = pg_fetch_array($result, null, PGSQL_ASSOC)){
$str .= "<user>";
$str .= "<id>" . $line['id'] . "</id>";
$str .= "<lname>" . $line['lname'] . "</lname>";
$str .= "<fname>" . $line['fname'] . "</fname>";
$str .= "<mname>" . $line['mname'] . "</mname>";
$str .= "</user>";
}
$str .= "</root>";
$str = stripslashes($str);
pg_close($pdb) or die(pg_last_error());
$mdb = mysql_connect("localhost", "root", "") or die(mysql_error()); // localhost - адрес бд MySQL, root - логин бд, root - пароль
mysql_select_db("testdb") or die(mysql_error());
$xml_entities = simplexml_load_string($str);
mysql_query("set names utf8") or die(mysql_error());
foreach($xml_entities as $entity){
mysql_query("INSERT INTO target(id, lname, fname, mname) VALUES ({$entity->id}, '$entity->lname', '$entity->fname', '$entity->mname')") or die(mysql_error());
}
mysql_close($mdb) or die(mysql_error());
} else if(isset($_POST) && $_POST['cmd'] == 'copyMtoP'){ //kopiruem iz MySQL v PostgreSQL
$mdb = mysql_connect("localhost", "root", "") or die(mysql_error()); // localhost - адрес бд MySQL, root - логин бд, root - пароль
mysql_select_db("testdb") or die(mysql_error());
mysql_query("set names utf8") or die(mysql_error());
$result = mysql_query("select * from target") or die(mysql_error());
$str = '<?xml version="1.0" encoding="utf-8"?>';
$str .= "<root>";
while($line = mysql_fetch_array($result)){
$str .= "<user>";
$str .= "<id>" . $line['id'] . "</id>";
$str .= "<lname>" . $line['lname'] . "</lname>";
$str .= "<fname>" . $line['fname'] . "</fname>";
$str .= "<mname>" . $line['mname'] . "</mname>";
$str .= "</user>";
}
$str .= "</root>";
$str = stripslashes($str);
mysql_close($mdb) or die(mysql_error());
$pdb = pg_connect('host=localhost dbname=testdb user=postgres password=root') or die(pg_last_error()); // localhost - адрес сервера бд PostgreSQL, testdb - имя бд, postgres - логин, postgres - пароль
$xml_entities = simplexml_load_string($str);
foreach($xml_entities as $entity){
pg_query("INSERT INTO source(id, lname, fname, mname) VALUES ({$entity->id}, '$entity->lname', '$entity->fname', '$entity->mname')") or die(pg_last_error());
}
pg_close($pdb) or die(pg_last_error());
}else{ //a inache, esli ne bylo kommandy dlya kopirovaniya, to prosto pokazat' dannye iz tablic
$pdb = pg_connect('host=localhost dbname=testdb user=postgres password=root') or die(pg_last_error()); // localhost - адрес сервера бд PostgreSQL, testdb - имя бд, postgres - логин, postgres - пароль
$result = pg_query("select * from source") or die(pg_last_error());
$datap = array();
$counter = 0;
while($line = pg_fetch_array($result, null, PGSQL_ASSOC)){
$datap[$counter]['id'] = $line['id'];
$datap[$counter]['lname'] = $line['lname'];
$datap[$counter]['fname'] = $line['fname'];
$datap[$counter++]['mname'] = $line['mname'];
}
pg_close($pdb) or die(pg_last_error());
$mdb = mysql_connect("localhost", "root", "") or die(mysql_error()); // localhost - адрес бд MySQL, root - логин бд, root - пароль
mysql_select_db("testdb") or die(mysql_error());
mysql_query("set names utf8") or die(mysql_error());
$result = mysql_query("SELECT * FROM target") or die(mysql_error());
$datam = array();
$counter = 0;
while($line = mysql_fetch_array($result)){
$datam[$counter]['id'] = $line['id'];
$datam[$counter]['lname'] = $line['lname'];
$datam[$counter]['fname'] = $line['fname'];
$datam[$counter++]['mname'] = $line['mname'];
}
mysql_close($mdb) or die(mysql_error());
}
?>
<html>
<head>
<title>title of the page</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style>
.left{
float: left;
margin: 20px;
}
.center{
margin: 40px;
float: left;
}
.right{
margin: 20px;
float:left;
}
</style>
</head>
<body>
<?php if(isset($_POST) && ($_POST['cmd'] == 'copyPtoM' || $_POST['cmd'] == 'copyMtoP')) { ?>
Данные преобразованные в XML формат:<br/>
<?php echo htmlspecialchars($str); ?><br/>
"Данные успешно
<a href="?">Назад</a>
<?php } else { ?>
<div class="left"><!-- tablica s dannymi iz PostgreSQL -->
<div>PostgreSQL data:</div>
<table border="1">
<tr>
<td>
id
</td>
<td>
lname
</td>
<td>
fname
</td>
<td>
mname
</td>
</tr>
<? foreach($datap as $d){ ?>
<tr>
<td>
<? echo $d['id']; ?>
</td>
<td>
<? echo $d['lname']; ?>
</td>
<td>
<? echo $d['fname']; ?>
</td>
<td>
<? echo $d['mname']; ?>
</td>
</tr>
<? } ?>
</table>
</div>
<div class="center"> <!-- pokazyvaem knopki dlya kopirovanii -->
<form action="" method="post">
<input type="hidden" name="cmd" value="copyPtoM">
<input type="submit" value=" => "/>
</form>
<br/>
<form action="" method="post">
<input type="hidden" name="cmd" value="copyMtoP">
<input type="submit" value=" <= "/>
</form>
</div>
<div class="right"><!-- tablica s dannymi iz MySQL -->
<div>MySQL data:</div>
<table border="1">
<tr>
<td>
id
</td>
<td>
lname
</td>
<td>
fname
</td>
<td>
mname
</td>
</tr>
<? foreach($datam as $d){ ?>
<tr>
<td>
<? echo $d['id']; ?>
</td>
<td>
<? echo $d['lname']; ?>
</td>
<td>
<? echo $d['fname']; ?>
</td>
<td>
<? echo $d['mname']; ?>
</td>
</tr>
<? } ?>
</table>
</div>
<?php } ?>
</body>
</html>
Using data bases:
1.MySQL
2.PostgreSQL
Coding in MySQL:
CREATE DATABASE IF NOT EXISTS `testdb` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `testdb`;
-- MySQL dump 10.13 Distrib 5.5.16, for Win32 (x86)
--
-- Host: 192.168.56.101 Database: testdb
-- ------------------------------
-- Server version 5.5.29-0ubuntu0.12.10.
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@
/*!40101 SET @OLD_COLLATION_CONNECTION=@@