Дайте определение терминам «простой», «составной» (composite), «потенциальный» (candidate) и «альтернативный» (alternate) ключ.
Из множества всех потенциальных ключей набора данных выбирают первичный ключ, все остальные ключи называют
Простой ключ
состоит из одного атрибута (поля). Составной - из двух и более.Потенциальный ключ
- простой или составной ключ, который уникально идентифицирует каждую запись набора данных. При этом потенциальный ключ должен обладать критерием неизбыточности: при удалении любого из полей набор полей перестает уникально идентифицировать запись.Из множества всех потенциальных ключей набора данных выбирают первичный ключ, все остальные ключи называют
альтернативными
.Что такое «нормализация»?
Нормализация предназначена для приведения структуры базы данных к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объёма базы данных. Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в базе данных информации.
Нормализация
- это процесс преобразования отношений базы данных к виду, отвечающему нормальным формам (пошаговый, обратимый процесс замены исходной схемы другой схемой, в которой наборы данных имеют более простую и логичную структуру).Нормализация предназначена для приведения структуры базы данных к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объёма базы данных. Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в базе данных информации.
#вопросы_с_собеседований
Чем абстрактный класс отличается от интерфейса? В каких случаях следует использовать абстрактный класс, а в каких интерфейс?
☕️ В Java класс может одновременно реализовать несколько интерфейсов, но наследоваться только от одного класса.
☕️ Абстрактные классы используются только тогда, когда присутствует тип отношений «is a» (является). Интерфейсы могут реализоваться классами, которые не связаны друг с другом.
☕️ Абстрактный класс - средство, позволяющее избежать написания повторяющегося кода, инструмент для частичной реализации поведения. Интерфейс - это средство выражения семантики класса, контракт, описывающий возможности. Все методы интерфейса неявно объявляются как public abstract или (начиная с Java 8) default - методами с реализацией по-умолчанию, а поля - public static final.
☕️ Интерфейсы позволяют создавать структуры типов без иерархии.
☕️ Наследуясь от абстрактного, класс «растворяет» собственную индивидуальность. Реализуя интерфейс, он расширяет собственную функциональность.
Абстрактные классы содержат частичную реализацию, которая дополняется или расширяется в подклассах. При этом все подклассы схожи между собой в части реализации, унаследованной от абстрактного класса и отличаются лишь в части собственной реализации абстрактных методов родителя. Поэтому абстрактные классы применяются в случае построения иерархии однотипных, очень похожих друг на друга классов. В этом случае наследование от абстрактного класса, реализующего поведение объекта по умолчанию может быть полезно, так как позволяет избежать написания повторяющегося кода. Во всех остальных случаях лучше использовать интерфейсы.
Чем абстрактный класс отличается от интерфейса? В каких случаях следует использовать абстрактный класс, а в каких интерфейс?
☕️ В Java класс может одновременно реализовать несколько интерфейсов, но наследоваться только от одного класса.
☕️ Абстрактные классы используются только тогда, когда присутствует тип отношений «is a» (является). Интерфейсы могут реализоваться классами, которые не связаны друг с другом.
☕️ Абстрактный класс - средство, позволяющее избежать написания повторяющегося кода, инструмент для частичной реализации поведения. Интерфейс - это средство выражения семантики класса, контракт, описывающий возможности. Все методы интерфейса неявно объявляются как public abstract или (начиная с Java 8) default - методами с реализацией по-умолчанию, а поля - public static final.
☕️ Интерфейсы позволяют создавать структуры типов без иерархии.
☕️ Наследуясь от абстрактного, класс «растворяет» собственную индивидуальность. Реализуя интерфейс, он расширяет собственную функциональность.
Абстрактные классы содержат частичную реализацию, которая дополняется или расширяется в подклассах. При этом все подклассы схожи между собой в части реализации, унаследованной от абстрактного класса и отличаются лишь в части собственной реализации абстрактных методов родителя. Поэтому абстрактные классы применяются в случае построения иерархии однотипных, очень похожих друг на друга классов. В этом случае наследование от абстрактного класса, реализующего поведение объекта по умолчанию может быть полезно, так как позволяет избежать написания повторяющегося кода. Во всех остальных случаях лучше использовать интерфейсы.
Какие существуют типы связей в базе данных? Приведите примеры.
• Один к одному - любому значению атрибута
Каждый университет гарантированно имеет 1-го ректора: 1 университет → 1 ректор.
• Один ко многим - любому значению атрибута
В каждом университете есть несколько факультетов: 1 университет → много факультетов.
• Многие ко многим - любому значению атрибута
1 профессор может преподавать на нескольких факультетах, в то же время на 1-ом факультете может преподавать несколько профессоров: Несколько профессоров ↔️ Несколько факультетов.
• Один к одному - любому значению атрибута
А
соответствует только одно значение атрибута В
, и наоборот.Каждый университет гарантированно имеет 1-го ректора: 1 университет → 1 ректор.
• Один ко многим - любому значению атрибута
А
соответствует 0
, 1
или несколько значений атрибута В
.В каждом университете есть несколько факультетов: 1 университет → много факультетов.
• Многие ко многим - любому значению атрибута
А
соответствует 0
, 1
или несколько значений атрибута В
, и любому значению атрибута В
соответствует 0
, 1
или несколько значение атрибута А
.1 профессор может преподавать на нескольких факультетах, в то же время на 1-ом факультете может преподавать несколько профессоров: Несколько профессоров ↔️ Несколько факультетов.
Forwarded from Proglib.academy | IT-курсы
Всем привет, на связи Proglib.academy
Мы знаем, что сейчас непростое время, но хотим спросить у вас, как вы отвлекаетесь от новостей?
Мы знаем, что сейчас непростое время, но хотим спросить у вас, как вы отвлекаетесь от новостей?
Anonymous Poll
26%
Учусь на курсах
34%
Ушёл в работу
11%
Обустраиваюсь на новом месте
34%
Играю в видеоигры
11%
Хожу на свидания/встречаюсь с друзьями
12%
Упоролся в спорт
36%
Смотрю развлекательный контент
В чем отличие между кластерными и некластерными индексами?
Некластерные индексы - данные физически расположены в произвольном порядке, но логически упорядочены согласно индексу. Такой тип индексов подходит для часто изменяемого набора данных.
При кластерном индексировании данные физически упорядочены, что серьезно повышает скорость выборок данных (но только в случае последовательного доступа к данным). Для одного набора данных может быть создан только один кластерный индекс.
Некластерные индексы - данные физически расположены в произвольном порядке, но логически упорядочены согласно индексу. Такой тип индексов подходит для часто изменяемого набора данных.
При кластерном индексировании данные физически упорядочены, что серьезно повышает скорость выборок данных (но только в случае последовательного доступа к данным). Для одного набора данных может быть создан только один кластерный индекс.
#вопросы_с_собеседований
Какая разница между JSPWriter и сервлетным PrintWriter?
PrintWriter является объектом, отвечающим за запись содержания ответа на запрос. JspWriter использует объект PrintWriter для буферизации. Когда буфер заполняется или сбрасывается, JspWriter использует объект PrintWriter для записи содержания в ответ.
Какая разница между JSPWriter и сервлетным PrintWriter?
PrintWriter является объектом, отвечающим за запись содержания ответа на запрос. JspWriter использует объект PrintWriter для буферизации. Когда буфер заполняется или сбрасывается, JspWriter использует объект PrintWriter для записи содержания в ответ.
Создание PDF-документа на Java и Spring
Сегодня мы научимся с помощью eDocGen, Java и Spring создавать pdf-документы на основе шаблона из JSON/XML/БД.
https://dzone.com/articles/template-based-pdf-document-generation-in-java
Сегодня мы научимся с помощью eDocGen, Java и Spring создавать pdf-документы на основе шаблона из JSON/XML/БД.
https://dzone.com/articles/template-based-pdf-document-generation-in-java
DZone
Template-Based PDF Document Generation in Java
Explore this guide to integrating eDocGen with your Java-based applications to generate PDF documents from JSON/XML/Database.
Что выведет программа?
Anonymous Quiz
58%
Main.main(String[] arr) is called
8%
Main.main() is called
28%
Compiler Error
6%
Runtime Error
В какой стране вы сейчас находитесь?
Anonymous Poll
50%
Россия
15%
Украина
10%
Беларусь
6%
Казахстан
4%
Узбекистан
1%
Киргизия
1%
Армения
1%
Грузия
2%
Турция
10%
Свой вариант в комментариях
❓ Зачем разработчику знать алгоритмы и структуры данных?
Рассказываем о преимуществах, которые дает хорошее знание алгоритмов, о том, что именно нужно изучить в первую очередь, и как проходит алгоритмическая секция в техническом собеседовании.
🔗 Основной сайт
🔗 Зеркало
Рассказываем о преимуществах, которые дает хорошее знание алгоритмов, о том, что именно нужно изучить в первую очередь, и как проходит алгоритмическая секция в техническом собеседовании.
🔗 Основной сайт
🔗 Зеркало
Какие существуют уровни изолированности транзакций?
В порядке увеличения изолированности транзакций и, соответственно, надёжности работы с данными:
• Чтение неподтверждённых данных (грязное чтение) (read uncommitted, dirty read) — чтение незафиксированных изменений как своей транзакции, так и параллельных транзакций. Нет гарантии, что данные, изменённые другими транзакциями, не будут в любой момент изменены в результате их отката, поэтому такое чтение является потенциальным источником ошибок. Невозможны потерянные изменения, возможны неповторяемое чтение и фантомы.
• Чтение подтверждённых данных (read committed) — чтение всех изменений своей транзакции и зафиксированных изменений параллельных транзакций. Потерянные изменения и грязное чтение не допускается, возможны неповторяемое чтение и фантомы.
• Повторяемость чтения (repeatable read, snapshot) — чтение всех изменений своей транзакции, любые изменения, внесённые параллельными транзакциями после начала своей, недоступны. Потерянные изменения, грязное и неповторяемое чтение невозможны, возможны фантомы.
• Упорядочиваемость (serializable) — результат параллельного выполнения сериализуемой транзакции с другими транзакциями должен быть логически эквивалентен результату их какого-либо последовательного выполнения. Проблемы синхронизации не возникают.
В порядке увеличения изолированности транзакций и, соответственно, надёжности работы с данными:
• Чтение неподтверждённых данных (грязное чтение) (read uncommitted, dirty read) — чтение незафиксированных изменений как своей транзакции, так и параллельных транзакций. Нет гарантии, что данные, изменённые другими транзакциями, не будут в любой момент изменены в результате их отката, поэтому такое чтение является потенциальным источником ошибок. Невозможны потерянные изменения, возможны неповторяемое чтение и фантомы.
• Чтение подтверждённых данных (read committed) — чтение всех изменений своей транзакции и зафиксированных изменений параллельных транзакций. Потерянные изменения и грязное чтение не допускается, возможны неповторяемое чтение и фантомы.
• Повторяемость чтения (repeatable read, snapshot) — чтение всех изменений своей транзакции, любые изменения, внесённые параллельными транзакциями после начала своей, недоступны. Потерянные изменения, грязное и неповторяемое чтение невозможны, возможны фантомы.
• Упорядочиваемость (serializable) — результат параллельного выполнения сериализуемой транзакции с другими транзакциями должен быть логически эквивалентен результату их какого-либо последовательного выполнения. Проблемы синхронизации не возникают.
Что будет завтра — сложно сказать, поэтому мы решили сфокусироваться на сегодняшнем дне и провести короткий опрос «С какими трудностями вы столкнулись в последнее время?», чтобы понять, что сейчас вообще происходит в IT-индустрии.
Статью с результатами опроса опубликуем через неделю.
➡️ Пройти опрос (можно анонимно)
Статью с результатами опроса опубликуем через неделю.
➡️ Пройти опрос (можно анонимно)
Что такое «SQL»?
SQL
, Structured query language
(«язык структурированных запросов») — формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных (СУБД).В ожидании JDK 20
Java 19 появилась совсем недавно, но уже сейчас можно начинать привыкать к Java 20, которая появится в марте 2023.
Что же будет в новой версии? А вот что:
✔️Паттерны для записей
✔️Шаблоны строк
✔️Примитивные классы
✔️Последовательные коллекции
и др.
Кратко и по делу о будущей версии в предложенной статье.
Будущее уже рядом! 😳
Читать статью
Java 19 появилась совсем недавно, но уже сейчас можно начинать привыкать к Java 20, которая появится в марте 2023.
Что же будет в новой версии? А вот что:
✔️Паттерны для записей
✔️Шаблоны строк
✔️Примитивные классы
✔️Последовательные коллекции
и др.
Кратко и по делу о будущей версии в предложенной статье.
Будущее уже рядом! 😳
Читать статью
Шпаргалка по основам Java с примерами кода.
В ней есть всё, что может пригодиться начинающему разработчику.
Оригинал в хорошем качестве можно взять тут
В ней есть всё, что может пригодиться начинающему разработчику.
Оригинал в хорошем качестве можно взять тут