Problem statement

Автор работы: Пользователь скрыл имя, 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 файл

CMS for Interbank interchange data communication.docx

— 818.80 Кб (Скачать файл)

• имя поля – определяет, как следует обращаться к данным этого поля при автоматических операциях с базой (по умолчанию имена полей используются в качестве заголовков столбцов таблиц).

• тип поля – определяет тип данных, которые могут содержаться в данном поле.

• размер поля – определяет предельную длину (в символах) данных, которые могут размещаться в данном поле.

• формат поля – определяет способ форматирования данных в ячейках, принадлежащих полю.

• маска ввода – определяет форму, в которой вводятся данные а поле (средство автоматизации ввода данных).

• подпись – определяет заголовок столбца таблицы для данного поля (если подпись не указана, то в качестве заголовка столбца используется свойство Имя поля).

• значение по умолчанию – то значение, которое вводится в ячейки поля автоматически (средство автоматизации ввода данных).

• условие на значение – ограничение, используемое для проверки правильности ввода данных (средство автоматизации ввода, которое используется, как правило, для данных, имеющих числовой тип, денежный тип или тип даты).

• сообщение об ошибке – текстовое сообщение, которое выдается автоматически при попытке ввода в поле ошибочных данных.

• обязательное поле – свойство, определяющее обязательность заполнения данного поля при наполнении базы.

• пустые строки – свойство, разрешающее ввод пустых строковых данных (от свойства Обязательное поле отличается тем, что относится не ко всем типам данных, а лишь к некоторым, например к текстовым).

• индексированное поле – если поле обладает этим свойством, все операции, связанные с поиском или сортировкой записей по значению, хранящемуся в данном поле, существенно ускоряются. Кроме того, для индексированных полей можно сделать так, что значение в записях будут проверяться по этому полю на наличие повторов, что позволяет автоматически исключить дублирование данных.

Поскольку в разных полях  могут содержаться данные разного  типа, то и свойства у полей могут  различаться в зависимости от типа данных. Так, например, список вышеуказанных  свойств полей относится в  основном к полям текстового типа. Поля других типов могут иметь  или не иметь эти свойства, но могут добавлять к ним и  свои. Например, для данных, представляющих действительные числа, важным свойством  является количество знаков после десятичной запятой. С другой стороны, для полей, используемых для хранения рисунков, звукозаписей, видео клипов и других объектов, большинство вышеуказанных  свойств не имеют смысла.

 

 

 

 

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/>

"Данные успешно экспортированы"<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.1

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;

/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;

Информация о работе Problem statement