|
|
| Мой сайт |
 |
Представляя Java DB 10.5.1.1
Содержание В памяти базы данных Антракт Генерируемые столбцы OFFSET/FETCH Синтаксис Роли SQL Дополнительная информация
Следующим основным выпуском Java DB, версия 10.5.1.1, теперь доступен для загрузки. Java DB поддерживает распределение ВС этого Apache Derby с открытым исходным кодом базы данных. Java DB составляет 100 процентов по технологии Java и проста в использовании. Пусть вас не смущает его небольшой файл JAR (2.5M): Это бесплатная база данных является быстрым, надежным и массой функций. Вы можете узнать больше об этом на веб-сайт Java DB.
10.5.1.1 новый выпуск Java DB вводит повышает производительность и некоторые захватывающие возможности: Масштабируемость. Пропускная способность выросла значительной для приложений, одновременно читать и обновления индексированных таблиц. Больших объектов (LOB). Больших бинарных и текстовых объектов потока быстрее. In-Memory Database. Быстро, переходные баз данных может жить полностью в памяти, и исчезают, когда виртуальная машина Java (JVM) * выходов. Генерируемые столбцы. Запросы работать быстрее, поскольку запрос фрагменты могут быть проиндексированы. OFFSET/FETCH Результаты могут быть фрагментированное эффективно. SQL Роли. Детального контроля доступа проще.
Далее в этой статье описаны новые возможности: в памяти базы данных, генерируемые столбцы, OFFSET/FETCH синтаксиса SQL и ролей. В памяти базы данных
Версии 10.5.1.1 вводит в памяти базы данных. Теперь вы можете быстро запускать сложные запросы в отношении данных, который исчезает, когда ваш JVM выходы. В памяти баз данных больше на следующие цели: Кэш. Используйте в памяти Java DB на среднем уровне для кэширования данных из корпоративных назад концами. Мониторы. Использование в памяти Java DB для обобщения и анализа переходных потоки датчика и экологические данные. Стендах. Используйте в памяти Java DB для подключения в стендах так что ноутбук может проверить корпоративным приложениям быстрым.
Создание в памяти базы данных легко. Просто добавьте memory Подпротокол в связи URL JDBC. Например, если ваш путь к классам содержит файл JAR Дерби derby.jar вот как можно создать соединение с JDBC в памяти базы данных называется patient java.sql.Connection сопп = java.sql.DriverManager.getConnection ( "JDBC: дерби: Memory: пациент, создавать = True");
После этого, вы используете в памяти patient база данных так же, как если бы он был диск-базу данных: создание таблиц, представлений, триггеров, функций и процедур. Включить, обновлять, просматривать и удалять данные. Когда ваши выходы приложений, баз данных исчезает, не оставив никаких следов себя на диске.
В памяти базы данных экспериментальных функция в версии 10.5.1.1. Это означает, что API может измениться, когда он полностью productized в следующем основном выпуске. Попробуйте новую версию, и пусть развитием Java DB команды знают, как ее улучшить. Лучший способ достичь команда через список рассылки сообщества дерби, в частности, Дерби-пользователей [собака] db.apache.org. Антракт
Прежде чем перейти к другим основным функциям в версии 10.5.1.1, давайте созданы Java DB для примера, что эта статья покажет. Эти примеры использования медицинского применения исследований. В этом заявлении, данные собраны на пациентов, участвующих в исследовании. Потому что это только примеры, Вы возьмете две клавиши. Во-первых, использование переходных в памяти базу данных, так что вам не приходится очищать, когда вы сделали.
Во-вторых, вы используете BUILTIN аутентификации Java DB's схеме. Схема BUILTIN аутентификации полезна для написания тестов, как это, но вы не должны использовать эту систему в производство. Чтобы запустить приложение, как это в производство, использование баз данных на диск и подключить LDAP основе проверки подлинности, как описано в "Белой книге по вопросам безопасности Java DB.
Чтобы запустить эти примеры, скачайте версию 10.5.1.1 двигателя Java DB и инструменты. Убедитесь, что провод derby.jar и derbytools.jar файлы в свой CLASSPATH.
Начните с создания базы данных, которая признает три пользователей: Алиса, Рут и администратора: Java \ -Dderby.connection.requireAuthentication = True \ -Dderby.authentication.provider = BUILTIN \ -Dderby.user.admin AdminPassword = \ Dderby.user.alice-alicepassword = \ Dderby.user.ruth-ruthpassword = \ -Dderby.database.sqlAuthorization = True \ Dderby.stream.error.method-java.sql.DriverManager.getLogStream = \ org.apache.derby.tools.ij
На этом этапе вы разговариваете с ij программы, команды Java DB's строки для выполнения SQL заявлений. Теперь администратор создает базу данных: Connect 'JDBC: дерби: Memory: пациент, создавать = True; User = Admin; Password = AdminPassword "как admin_conn;
Теперь, когда вы создали Java DB на примерах этой статьи, давайте вернемся к обсуждению новых функций 10.5.1.1. Генерируемые столбцы
Версии 10.5.1.1 вводит генерируемые столбцы. Сгенерирована колонки колонки, содержимое которого вычисляются из значений других столбцов в той же строке. Это позволит вам принять выражения из пункта WHERE запроса, предварительно вычислить эти выражения, а индекс предварительные результаты расчетов, чтобы ваш запрос выполняется быстрее. Пример следующим образом.
Помните, что администратор просто загрузки базы данных. Затем администратор создает несколько таблиц для хранения данных пациентов. Одна из таблиц имеет генерируемый столбец, помечен как первая линия выделена жирным шрифтом. Также обратите внимание на указатель, флаги здесь как вторая жирная линия: создать таблицу privatePatientData ( patientID Int первичный ключ, сгенерированный всегда как личности, Название VARCHAR (32672) NOT NULL, Адрес VARCHAR (32672) NOT NULL, telephoneNumber VARCHAR (100) NOT NULL ); создать таблицу publicPatientData ( patientID Int Primary Key privatePatientData ссылки (patientID), PostalCode VARCHAR (100), dateBorn дата не NULL, heightInches двойной NOT NULL, weightPounds двойной NOT NULL, гендерного CHAR (1), diseaseMetric INT, heightWeightRatio Generated как всегда ((heightInches * heightInches) / weightPounds) ); создание индекса ppd_hwr_idx на publicPatientData (heightWeightRatio, diseaseMetric); создание индекса ppd_d_idx на publicPatientData (diseaseMetric, patientID);
Давайте взглянем на генерируемых столбцов и смелый текст, который следует за ней, поколение оговорку. Поколение пункт состоит из нескольких ключевых слов после выражения в скобках. Само выражение строится из других столбцов в строки и может быть сложным. Например, выражение в скобках может включать системные и пользовательские функции.
Всякий раз, когда вы вставить новую строку в publicPatientData таблице, Java DB автоматически вычисляет содержание генерируемых heightWeightRatio колонки, основанное на ценностях, что вы вставили в heightInches и weightPounds колонн. Всякий раз, когда вы обновляете heightInches или weightPounds колонн, Java DB автоматически пересчитывает значение генерируемого столбца. Единственный способ изменить содержимое генерируемых столбцов является изменение значения столбцов, что она зависит.
Помните индекс ppd_hwr_idx помечен на второй жирная линия? Этот индекс, в сочетании с генерируемых столбцов, делает ее легкой для Java DB рассчитать, как здоровья пациентов коррелирует с высоты пациента-веса. Следующий запрос может воспользоваться индексом, и поэтому быстро бегает: Выберите diseaseMetric, COUNT (*) итоги от publicPatientData где heightWeightRatio <0,4 Группе diseaseMetric;
OFFSET/FETCH Синтаксис
Версии 10.5.1.1 также вводит OFFSET/FETCH синтаксис, который недавно был добавлен в ANSI / ISO стандартный SQL. Этот синтаксис позволяет сосредоточить внимание на небольшую странице результатов поиска без необходимости читать таблицу весь путь до конца. Некоторые другие базы данных поддерживают эту функцию с помощью нестандартного положения LIMIT
Предположим, что в ходе медицинского исследования, исследователи хотят сообщить пациентам, которые имеют высокий риск как измеряется их diseaseMetric Некоторые исследователи могут делиться этим уведомлением задание с помощью запросов вроде следующего заявления. Эти запросы разделить больных высокого риска на группы, и каждый исследователь берет на себя ответственность за группу. Обратите внимание на новый синтаксис помечен жирным шрифтом: - Страница 1 Выберите diseaseMetric, pub.patientID, имя, telephoneNumber publicPatientData из паба, privatePatientData PRIV где pub.patientID = priv.patientID и diseaseMetric> 10 Сортировать по diseaseMetric, pub.patientID смещения 0 строк Fetch следующем лишь 20 строк;
- Страница 2 Выберите diseaseMetric, pub.patientID, имя, telephoneNumber publicPatientData из паба, privatePatientData PRIV где pub.patientID = priv.patientID и diseaseMetric> 10 Сортировать по diseaseMetric, pub.patientID компенсировано 20 строк Fetch следующем лишь 20 строк;
В предыдущих запросов, пункт OFFSET рассказывает Java DB пропустить некоторое количество строк в своем распоряжении возвращает результат пользователю. Пункт FETCH NEXT рассказывает Java DB прекратить чтение данных после предоставления пользователю требуемое количество строк. Роли SQL
И наконец, версия 10.5.1.1 вводит ролей, чтобы помочь упростить управление мелкозернистой SQL разрешения. Роли позволяют определить пакет привилегий, а затем предоставить целый пакет к пользователю. Эта способность позволяет разработчиков приложений и администраторы баз данных несколько преимуществ: Ясность. Роли позволяют легко доказать, на взгляд, что права ограничиваются люди, которые должны выполнять определенные виды работ. Простота. Роли позволяют легко добавлять и удалять пользователей из определенных категорий работы.
В следующем примере, администратор создает две роли: researcher и tech_writer Пользователи с researcher роль может просматривать и обновлять всю информацию. Пользователи с tech_writer роль не может изменить данные и не могут просматривать чувствительны, личная информация: создать роли исследователя; создать роли tech_writer;
предоставить все привилегии на privatePatientData исследователя; предоставить все привилегии на publicPatientData исследователя;
GRANT SELECT на publicPatientData к tech_writer;
Затем администратор определяет Алиса в качестве исследователя и Рут качестве технического писателя: предоставить исследователям Alice; Гранта tech_writer Руфи;
Теперь Алиса проверяет, что она может создавать и просматривать данные. Обратите внимание на заявления, выделены жирным шрифтом в следующий код: Алиса начинается прямо указав, что она будет выполнять задачи исследователя. Это может быть удивительным на первый взгляд. Если приложение использует SQL ролей, то ее пользователи должны явно указать, какие работы они выполняют в любой момент времени: Connect 'JDBC: дерби: Memory: пациенту; User = Alice; Password = alicepassword "как alice_conn;
установить роль научный сотрудник;
- Алиса может вставлять данные в этих таблицах вставить в admin.privatePatientData (Наименование, адрес, telephoneNumber) Значения ( 'Марты Мерфи', '29 Primrose Lane / St. Paul, Minnesota ', '123-456-7890') ; вставить в admin.publicPatientData Значения ( (Выбрать patientID от admin.privatePatientData где имя = 'Марта Мерфи), '55109 ', Дата ('1955-02-23 '), 66, 150, 'F', 7, по умолчанию );
- Алиса может просматривать все данные SELECT * FROM admin.privatePatientData; SELECT * FROM admin.publicPatientData;
Кроме того, Рут подтверждает, что она может читать только общедоступные данные и что она не может изменить любые данные. В следующем примере, замечания, флаг несколько мест, где вы увидите ошибки при запуске этого сценария через ij инструмента: Connect 'JDBC: дерби: Memory: пациенту; User = Руфи; Password = ruthpassword "как ruth_conn;
- Рут не позволил представить себя на роль еще не предоставлен ей. установить роль научный сотрудник;
- Но она может установить себя в этой роли установить роль tech_writer;
- Она не имеет разрешения на включение в таблицах вставить в admin.privatePatientData (Наименование, адрес, telephoneNumber) Значения ( 'XXX', 'XXXX', 'XXX-XXX-XXXX') ;
- Она не умеет читать частные таблицы SELECT * FROM admin.privatePatientData;
- Но она может читать общим столом SELECT * FROM admin.publicPatientData;
На этом мы завершаем примеров. Теперь закрыли ij инструмента: Exit;
На этом мы завершаем обзор основных особенностей Java DB 10.5.1.1: в памяти базы данных, генерируемые столбцы, OFFSET/FETCH и SQL ролей.
_______ * Как использовать на этом веб-сайте, термин "виртуальная машина Java" и "JVM" означают виртуальную машину на платформе Java. Дополнительная информация
Скачать Java DB 10.5.1.1 Java DB главную страницу Франсуа Орсини Блог: Где инновациям Matter Кнут Андерс Hatlen's Weblog Масуд Мортазави Блог Оцените эту статью Unrated
Комментариев
У вас есть замечания по этой статье? Мы приветствуем ваше участие в нашей общине. Пожалуйста, держите свои комментарии по гражданским и точка. Дополнительно, вы можете обеспечить свой адрес электронной почты для уведомления об ответах - Ваша информация не используется для каких других целей. Отправляя комментарий, Вы согласны с этими Условиями пользования.
|
| Категория: статьи | Добавил: Aleksei (15.10.2009)
|
| Просмотров: 804 | Комментарии: 1
| Рейтинг: 0.0/0 |
|
|