Файлове от база данни. Файлова структура на SQLite Какво е разширението на файловете на базата данни за достъп

В повечето настолни СУБД всяка таблица База даннисе съхранява в отделен файл, който съдържа както сервизна информация, така и данни в подходящ формат. Информацията за услугата включва информация, описваща структурата на файла, например имената и типовете данни на полетата на таблицата, броя на записите във файла, дължината на файла и т.н.

За разлика от други СУБД, Microsoft Accessсъхранява всички обекти (с изключение на страниците за достъп до данни) в един файл с разширението mdb. В допълнение, MDB файлът включва набор от системни таблици, които съдържат цялата необходима информация за обектите на базата данни, включително информация за местоположението и параметрите на прикачени таблици от други формати. По подразбиране системните таблици не се показват в прозореца на базата данни на Access 2002. За достъп до тези таблици трябва да промените една от опциите на Access. За да направите това, изберете командата Обслужване, опции(Инструменти, Опции), разгънете раздела ИзгледДиалогов прозорец (Изглед) Настроики(Опции) и в група Дисплей(Покажи) поставете отметка в квадратчето Системни обекти(Системни обекти). Системните таблици за достъп са само за четене, така че не могат да бъдат променяни от потребителя.

По -долу са форматите на файловете на базата данни, които могат да бъдат прикачени или импортирани от Access 2002.

  • Таблици предишна версия Access 2000 (MDB) се обработва по абсолютно същия начин като таблиците на Access 2002. Те не изискват никакви специални усилия за импортиране от потребителя и се отварят по същия начин като таблиците на Access 2002. . Единствената разлика ще бъде, че след името отвори файлв заглавието на прозореца на базата данни, в скоби, ще има надпис: Достъп до формат 2000(Достъп до файл във формат 2000).
  • DBASE III, III +, IV, 5 и 7 (DBF) таблици, файлове на поле MEMO (DBT), индексни файлове dBASE III (NDX) и индексни файлове dBASE IV (MDX).

Коментирайте

Стандартни ISAM драйвери Microsoft Officeкато част от компонента за достъп до данни на Microsoft (MDAC) 2.1 и по-нови, осигуряват достъп само за четене до DBF файлове. Borland Database Engine (BDE) 4.x или по -нова версия е необходим за достъп за четене / запис. Има и драйвери на Microsoft, които осигуряват достъп за четене / запис и не изискват инсталирането на BDE, но това изисква да се свържете с техническата поддръжка на Microsoft.

DBASE III и dBASE IV табличните и индексни файлови формати са стандартни за системите за управление на бази данни, които работят на персонални компютри... Системата за управление на база данни на Access 2002 ви позволява да прикачвате NDX и MDX индексни файлове. Всеки път, когато свързана индексирана таблица се промени, dBASE Access автоматично актуализира индексните файлове.

Коментирайте

Индексните файлове NDX (dBASE III), MDX (dBASE IV) не са задължителни. Ако обаче тези файлове са налични, най -добре е да ги използвате. В противен случай, когато свързаната таблица dBASE се промени, промените не се отразяват в индексния файл, което може да причини грешки при опит за използване на индексирани таблици, променени в Access в dBASE приложения.

Ако импортираният dBASE файл съдържа полета от тип MEMO, тогава файловете с данните на тези полета (DBT) трябва да са налични, тоест те трябва да се намират в същата папка като самата таблица. Ако Access 2002 не може да намери DBT файла, прикачването или импортирането на данни от такава таблица ще доведе до грешка. Когато експортирате данни от таблица на Access 2002, която съдържа поле MEMO, DBT файл се създава автоматично в таблица dBASE и получава същото име като файла на таблицата.

  • Файлове с таблица Paradox (DB) и индекс (PX) 3.x, 4.x и 5.0.

Access 2002 ви позволява да прикачвате Paradox таблични и индексни файлове 3.xи 4.x за MS-DOS и Paradox за Windows 5.0 и 8.0. Когато актуализирате данни в таблица Paradox от Access, индексният файл трябва да е наличен заедно с файла на таблицата. В процеса на прикачване на таблица Access 2002 автоматично прикачва индексния файл (ако съществува).

Всички допълнителни файлове, използвани при импортиране или прикачване на таблици от база данни, трябва да се намират в същата папка с таблицата. Заслужава да се отбележи, че повечето приложения, които работят с файлове с таблици и индекси, използват

използвайте стандартните разширения по -горе за тези файлове, въпреки че това не е задължително. Следователно определянето на конкретен файлов формат за таблица на база данни понякога може да бъде нетривиално.

В този пост базата данни SQLite ще бъде разгледана в раздел, можете да намерите информация за структурата на файла с базата данни, за представянето на данни в паметта, както и информация за структурата и представянето на файла на B - дървото.

Файлов формат на база данни

Цялата база данни се съхранява в един файл на диск, наречен "основен файл на базата данни". По време на транзакции SQLite съхранява допълнителна информация във втори файл: дневник за връщане или, ако базата данни е в режим WAL, лог файл с информация за записите. Ако приложението или компютърът се изключат преди края на транзакцията, тогава тези файлове се наричат ​​„горещ дневник“ или „горещ WAL файл“ и съдържат необходимата информация за възстановяване на базата данни до последователно състояние.

Страници

Основният основен файл се състои от една или няколко страници. Всички страници в една база данни имат еднакъв размер, който може да бъде от 512 до 65536 байта. Размерът на страницата за файла на базата данни се определя от 2-байтово цяло число с отместване от 16 байта от началото на файла с базата данни.
Всички страници са номерирани от 1 до 2147483646 (2 ^ 31 - 2). Минимален основен размер: една страница с размери 512 байта, максималният размер на базата данни: 2147483646 страници с по 65536 байта всяка ( ~ 140 TB).

Заглавие

Първите 100 байта от файла на базата данни съдържат заглавката на базата данни, таблица 1 показва схемата на заглавката.

маса 1

Заключваща байтова страница

Блокиращата страница е една страница от основния файл и се намира между отмествания 0x1073741824 и 0x1073742335, ако основният размер е по -малък, тогава тя няма блокираща страница. Тази страница е необходима за прилагане на примитиви за заключване на интерфейса на OS.

Freelist

Списъкът с празни страници е организиран като свързан списък. Всеки елемент от списъка се състои от две числа, по 4 байта всеки. Първото число определя номера на следващия елемент на свободен списък (указател на багажника) или е равно на нула, ако списъкът приключи. Вторият номер е номерата на страниците на листата. Фигурата по -долу показва диаграма на тази структура.

В - дърво

SQLite използва два вида дървета: "таблица B - дърво" (оставя данни за съхранение) и "индекс B - дърво" (оставя ключове за съхранение).
Всеки запис в таблица B - дърво се състои от 64 -битов цялостен ключ и до 2147483647 байта случайни данни. Ключът "таблица B - дърво" съответства на ROWID на SQL таблицата.
Всеки запис в "индекс B - дърво" се състои от произволен ключ с дължина до 2147483647 байта.

Страница В - дърво

Страницата с B-дърво има структурата:
  • Заглавка на файл с база данни (100 байта)
  • Заглавка на страницата с B-дърво (8 или 12 байта)
  • Масив от клетъчни указатели
  • Незаето пространство
  • Съдържание на клетката
  • Запазено място

Заглавка на файл с база даннисе среща само на първата страница, която винаги е старата "таблица B - дърво". Всички други страници с B-дърво в базата данни нямат това заглавие.

Заглавие на страницата с B-дървое 8 байта за листни страници и 12 байта за вътрешни страници... Таблица 2 показва структурата на заглавката на страницата.

таблица 2

Фрийблоке структура, използвана за дефиниране на неразпределено пространство в страницата на B-дърво. Freeblock е организиран като верига. Първите 2 байта в freeblock (от висок до нисък) се изместват към следващия freeblock или нула, ако freeblock е последният във веригата. Третият и четвъртият байт са цяло число, размерът на свободния блок в байтове, включително 4-байтова заглавка. Безплатните блокове винаги са свързани във възходящ ред на изместване.

Фрагментирани байтовеТова е общият брой неизползвани байтове в областта на съдържанието на клетката.


Масив от клетъчни указателисе състои от K 2-байтови цели отклонения на съдържанието на клетката (ако приемем K клетки в B-дървото). Масивът е сортиран във възходящ ред (от най -малките клавиши до най -големите).

Незаето пространствое областта между последната клетка от масива от указатели и началото на първата клетка.

Запазено мястов края на всяка страница се използва от разширения за съхраняване на информация за страницата. Размерът на запазената област е дефиниран в основната заглавка (по подразбиране е нула).

ТАБЛИЦА

Всяка таблица (с ROWID) е представена в базата данни като маса b - дърво... Всеки запис в дървото съответства на ред в SQL таблицата. Един ред на SQL таблица е представен като последователност (същата като посочената при създаването й) на колони на таблици във формат на запис. Ако таблицата има INTEGER PRIMARY KEY, който е псевдоним на ROWID, тогава NULL ще бъде записана вместо стойността му. SQLite винаги ще използва ключа маса b - дървовместо NULL, когато се отнася до INTEGER PRIMARY KEY. Ако афинитетът на колоната (препоръка за преобразуване на тип, повече подробности на habrahabr.ru/post/149635 в раздела "Типове данни и сравнение на стойности") е РЕАЛЕН и стойността може да бъде преобразувана в INTEGER без загуба на данни, тогава стойността ще се съхранява като цяло число. Когато извлича данни от база данни, SQLite преобразува цяло число в REAL.

ТАБЛИЦА БЕЗ ROWID

Всяка таблица (без ROWID) е представена в базата данни като индекс b - дърво... Разликата от таблици с rowid е, че ключът на всеки SQL запис на таблицата се съхранява под формата на формат на запис, а ключовите колони се съхраняват, както е посочено в PRIMARY KEY, а останалите в реда, посочен в декларацията на таблицата .
По този начин вписванията в индекс b - дървоса представени по същия начин, както в маса b - дървоосвен реда на колоните и факта, че съдържанието на реда се съхранява в ключа на дървото, а не като данни за листата, както в маса b - дърво.

ИНДЕКС

Всеки индекс (деклариран CREATE INDEX, PRIMARY KEY или UNIQUE) е представен в базата данни под формата индекс b - дърво... Всеки запис в такова дърво съответства на ред в SQL таблицата. Ключът на дървото на индекса е поредица от стойности на колони, посочени в индекса, и се прекратява от ключа на ред (ред или първичен ключ) във формат на запис.

UPD 13:44: преработен раздел Представителство, благодаря за критиката mayorovp (разбира се, че можеше да се преместиш, но о добре).

За да създадете база данни, стартирайте помощната програма IBConsolи се установява сесия с локален сървър... След това командата се издава от главното меню на помощната програма

Инструменти - „Интерактивен SQL

В същото време на екрана се показва диалогов прозорец. Интерактивен SQLза да се опишат характеристиките на файла с базата данни (фиг. 5.1), в чието работно поле е написана заявка за създаване на база данни.

За да изпълните заявката, трябва да издадете командата от клавиатурата Ctrl + Eили от главното меню издайте командата

Ориз. 4.1.Стартиране на сървъра InterBase

Създаване на файл с база данни

Файл с база данни е контейнер, в който се съхраняват други файлове, като файлове с таблици, индексни файлове, изгледи и т.н. Файлът с база данни се създава веднъж и не може да се променя в бъдеще. В рамките на файла с базата данни има определена област, наречена метаданни. В тази област се съхраняват програмни блокове, които съдържат компилирани описания на тригери, съхранени процедури и генератори.

Заявка 501 се използва за създаване на празен файл с база данни СЪЗДАВАНЕ НА БАЗА ДАННИ.Създаденият файл с база данни впоследствие ще съдържа файлове за таблици, индекси, изгледи и т.н.

Формат на заявката

СЪЗДАЙ СХЕМА НА БАЗА ДАННИ

[ ПОТРЕБИТЕЛ [ ПАРОЛА ] ]

[ РАЗМЕР НА СТРАНИЦАТА [ = ] ]

[ LENGTH [ = ] [ СТРАНИЦА [S]]]

[КОМПЛЕКТ ПО ЗНАЧЕНИЕ НА ХАРАКТЕРИТЕ] е];

където опцията има структура

ФАЙЛ[има структура

LENGTH [=] [ СТРАНИЦА [S]] СТАРТИРАНЕ [АТ [СТРАНИЦА)]

Предназначение на параметрите:

Указва пълното име на файла с базата данни. Името е написано съгласно правилата на използваната платформа;

ПОТРЕБИТЕЛ- посочено е името на потребителя (собственика) на базата данни. При всеки достъп до базата данни се изисква потребителско име, което да го идентифицира;

ПАРОЛА- паролата е посочена, която се иска всеки път при достъп до базата данни. Паролата се изисква заедно с потребителското име (USER

РАЗМЕР НА СТРАНИЦАТА[=] - задава размера на страницата на базата данни в байтове. Следните размери на една страница са валидни: 1024 (по подразбиране), 2048, 4096 и 8192;

КОМПЛЕКТ ПО ЗНАЧЕНИЕ НА ХАРАКТЕРИТЕ- параметърът определя набора от знаци, които ще се използват за съхраняване на данни в базата данни. Тоест символите на националните азбуки са зададени. Настройката по подразбиране е НИТО ЕДИН, тоест само символите на английската азбука са позволени. За да използвате буквите на руската и английската азбука при съхраняване на символни данни, задайте набора WIN 1251. Наборът от символи се посочва веднъж при създаването на базата данни.Можете да промените кодирането по подразбиране или тази опция, когато дефинирате конкретни домейни или колони;

ФАЙЛ- показва името на един или повече файлове, които съставляват една база данни. Името на всеки файл се определя от отделна опция. ФАЙЛ ;

СТАРТ [НА [СТРАНИЦА]]- определя началната страница на съответния файл с база данни (за многофайлова база данни);

LENGTH [=] [ СТРАНИЦА [S]] -задава размера на текущия файл в страници. По подразбиране е 75 страници. Минималният брой страници на файл е 50.

Ако е дефиниран един файл с база данни (по подразбиране), се предполага, че той ще заема цялото дисково пространство, когато се добавят нови записи. Този подход не е рационален, когато се използва дисково пространство на сървъра с множество бази данни. Следователно са наложени ограничения за размера на файла (или файловете). В този случай отделни файлове, които съставляват една база данни, могат да се съхраняват на физически различни носители. Извиква се първият от файловете, съставляващи една база данни първичен,а останалите файлове са втори.Вторичните файлове могат да имат различни имена, разширения и места за съхранение. Когато посочвате параметри за вторични файлове, някои елементи са незадължителни и могат да бъдат пропуснати, като знак за равенство. Командата по -долу (пример 5.1) създава файл с база данни в текущата работна директория (папка).

Паролата и потребителското име, посочени в това изявление, се проверяват от сървъра всеки път, когато се осъществява достъп до базата данни, за да се идентифицира потребителят. Правата и привилегиите за достъп до базата данни се определят от оператора ГРАНТ,които ще бъдат разгледани по -долу.

Размерът на страницата за цялата база данни е фиксиран и може да бъде една от стойностите: 1024, 2048, 4096 или 8192 байта. По подразбиране е 1024 байта. Обменът на данни между клиентското приложение и базата данни се извършва в размер на страница. Увеличаването на размера на страницата намалява времето за обработка (изпълнение на заявка) чрез намаляване на броя на операциите за четене, но увеличаването на размера на страницата е оправдано само ако извадките от данни (части от информация) са големи. Ако размерът на пробата е малък при голям размерстраници, тогава обемът на страницата не се използва ефективно.

Пример 5.1.Създаване на многофайлова (разпределена) база данни.

СЪЗДАЙТЕ БАЗА ДАННИ D: SKAZKABOOK.GDB ПОТРЕБИТЕЛ "SYSDBA" ПАРОЛ "masterkey"

ФАЙЛ D: SKAZKABOOK.GDl СТАРТИРАН НА СТРАНИЦА 1501 ДЪЛЖИНА 100

ФАЙЛ D: SKAZKABOOK.GD2

На диска двътре в директорията "СКАЗКА"се създава база данни, състояща се от три файла:

  • първият файл с име BOOK.GDBима размер на страницата 1024 байта (по подразбиране), броят на страниците е 1500 (от 1 до 1500, тъй като вторият файл BOOK.GD 1 започва на страница 1501);
  • втори файл с име КНИГА. GDIима размер на страницата 1024 байта, броят на страниците е 100;
  • трети файл BOOK.GD2има размер на страницата 1024 байта, броят на страниците е неопределен (до пълното запълване на диска).

Посочено потребителско име (собственик на база данни) - SYSDBAи паролата е masterkey.

Или потребителят (собственикът) на базата данни може да изтрие база данни, или Системен администраторизползвайки командата

Освен това се премахва токабаза данни, тоест базата данни, към която е установена връзката.

След използване на тази команда последващото възстановяване на базата данни не е възможно.

Както е показано в следващата таблица, базите данни на SQL Server имат три типа файлове.

Описание

Първичен

Първичният файл с данни съдържа информацията, необходима за стартиране на базата данни, и връзки към други файлове в базата данни. Потребителските данни и обекти могат да се съхраняват в този файлили във вторичен файл с данни. Всяка база данни има един първичен файл с данни. Препоръчителното разширение за името на основния файл с данни е MDF.

Втори

Вторичните файлове с данни не са задължителни; това са потребителски файлове, които съхраняват потребителски данни. Вторичните файлове могат да се използват за разпространение на данни на множество дискове, като в този случай всеки файл се записва на отделен диск. Освен това, ако размерът на базата данни надвишава максималния размер за един файл на Windows, могат да се използват вторични файлове с данни, за да може базата данни да се разраства допълнително.

Дневник на транзакциите

Файловете на дневника на транзакциите съдържат информация, използвана за възстановяване на базата данни. За всяка база данни трябва да има поне един регистрационен файл. Разширението LDF се препоръчва за файлове с дневник на транзакции.

Например проста база данни с име Продажбиможе да съдържа един първичен файл, съдържащ всички данни и обекти, и един регистрационен файл, съдържащ информация за дневника на транзакциите. По -сложна база данни с име Поръчкиможе да съдържа един първичен файл и пет вторични файла. Данните и обектите в базата данни са разпределени във всичките шест файла, а четирите лог файла съдържат информация за транзакциите.

По подразбиране регистрационните файлове за данни и транзакции се поставят на един и същ диск и имат същия път. Това е за поддръжка на системи с един диск. За производствените среди обаче това може да не е оптималното решение. Препоръчително е да поставите данни и регистрационни файлове на отделни дискове.

Имена на логически и физически файлове

Файловете на SQL Server имат две имена.

логическо_файл_име

логическо_файл_имее името, използвано за препратка към физическия файл във всички инструкции на Transact-SQL. Името на логическия файл трябва да следва правилата за идентификаторите на SQL Server и трябва да бъде уникално сред имената на логическите файлове в съответната база данни.

os_file_name

Име os_file_nameе името на физическия файл, включително пътя на директорията. Той трябва да следва конвенциите за именуване на файлове на операционната система.

Файлови групи

Всяка база данни има основна файлова група. Тази файлова група съдържа основния файл с данни и всички вторични файлове, които не са включени в останалите. файлови групи... Могат да се създават персонализирани файлови групи за лесно администриране, разпространение и поставяне на данни.

Например, три файла, Data1.ndf, Data2.ndf и Data3.ndf, могат да бъдат създадени съответно на три диска и да бъдат присвоени на файлова група fgroup1... В този случай можете да създадете таблица въз основа на файловата група fgroup1... Заявките за данни от таблицата ще бъдат разпределени на три диска и това ще подобри производителността. Подобно подобрение на производителността може да се постигне с един файл, създаден на раиран диск RAID масив... Файловете и файловите групи обаче улесняват добавянето на нови файлове към нови устройства.

Всички файлове с данни се съхраняват във файловите групи, изброени в следната таблица.

Дневните файлове не могат да бъдат част от файлови групи. Управлението на пространството за регистрация е отделно от управлението на пространството за данни.

Файлът не може да бъде част от множество файлови групи. Таблици, индекси и данни за големи обекти могат да бъдат свързани с определена файлова група.

Стартиране, пауза и изключване SQL Сървър .

    Използване на диспечера SQL конфигурацияСървър

    от SQL Server Management Studio

    от командния ред.

Базите данни са сложни системи, които съдържат информация в свързани таблици. SQL файл - SQL формат за представяне на данни в бази данни. С други думи, това е нормално текстов файлс набор от инструкции за работа с информацията в таблиците.

Описание

Файловият формат * .sql означава "език за заявки за структурирани файлове. Категорично се отнася до файловете на базата данни. Съдържа текстова информация, както и набор от инструкции, които ви позволяват да я обработвате - търсене, класифициране, изтриване на редове от базата данни (бази данни ), добавете нови, създайте селекции въз основа на дадени параметри... Набор от инструкции е представен под формата на оператори на езика за заявки.

Как да отворите SQL файл?

Форматът SQl се отваря от всички програми, работещи с бази данни. Този списък включва:

  • MySQL е един от най -разпространените. Съвместим с всички известни операционни системи.
  • Microsoft Office Access е програма от разширен набор от офиси софтуерза Windows.
  • PostgreSQL е модерна и удобна СУБД, която се конкурира с MySQL.

Всички тези програми (с изключение на може би Access) не само са инсталирани в системата, но също така правят корекции в системните файлове по време на инсталацията - трудно е да се инсталират многофункционални СУБД и е препоръчително само ако е необходима допълнителна работа. Ако не, помислете за други варианти.

Текстови редактори

За да видите какво съдържа SQL файлът, * .sql може да се отвори с всеки прост текстов редактор като Notepad, Wordpad, Vim или Notepad. В допълнение, епитетът "всеки" означава това текстови редактори Linux също може да отваря и редактира файлове на база данни.

Важно!След като редактирате файла, не забравяйте да го запазите в оригиналния му формат.

Недостатък на този метод: липса на функционалност на СУБД. Ще трябва да работите само с текстово съдържание, без възможност да уведомявате системата за грешка в писмена заявка или да подчертавате правописни грешки при промяна на данните. Поради тази причина за редактиране на SQL файл SQL СУБД са по -подходящи.



Свързани статии: