При программировании программы OO с использованием базы данных базы данных SQL атрибуты объектов соответствуют строкам в таблицах? Или более того? Я не совсем понимаю, как атрибуты объектов относятся к данным в таблицах. Спасибо за помощь.OO-программа и база данных SQL
ответ
Это действительно зависит от того, который ORM вы используете, однако, в целом идея:
class = > table
instance => row
attribute => column
Вы должны быть более конкретными, и, возможно, сделать немного исследований о том, что доступно на выбранный Платформа. Хотя существуют способы сопоставления различных объектно-ориентированных языков в базах данных, не существует подхода «один размер подходит всем».
ennuikiller упомянул некоторые вещи, но объект может также храниться на нескольких строках и таблицах, потому что не может быть никакой корреляции из-за того, как данные моделируются и нормализуются.
Это не просто ... некоторые чтение Object-relational impedance mismatch (Википедия)
спасибо gbn, я забыл упомянуть о сложности модели данных. – ennuikiller
Я попытался прочитать эту статью (на самом деле, прежде чем я разместил этот вопрос), но я не мог этого понять. Может кто-нибудь обобщить его или есть простой пример, который его иллюстрирует? – ChrisC
Почитайте о Object-relational_mapping
метод программирования для преобразования данных между системами несовместимых типа в реляционных базах данных и объектно-ориентированных языков программирования , Это создает, по сути, «базу данных виртуальных объектов», которая может использоваться из языка программирования. Доступны как бесплатные, так и коммерческие пакеты, которые выполняют объектно-реляционное сопоставление, хотя некоторые программисты предпочитают создавать свои собственные инструменты ORM.
Для Java
или .NET
проект hibernate обеспечивает реляционную настойчивость.
Hibernate - это мощный, высокопроизводительный объект/реляционная персистенция и служба запросов. Hibernate позволяет разрабатывать постоянные классы по объектно-ориентированной идиоме, включая ассоциацию, наследование, полиморфизм, состав и коллекции. Hibernate позволяет вам выражать запросы в своем собственном переносном расширении SQL (HQL), а также в собственном SQL или объектно-ориентированном критерии и пример API.
В отличие от многих других решений настойчивости, Hibernate не скрывает от вас силу SQL и гарантирует, что ваши инвестиции в реляционные технологии и знания так же актуальны, как всегда.
Ответов нет.
Целью проекта OO является оптимизация для удобства указания поведения программы. Целью проектирования базы данных является оптимизация для удобства хранения/извлечения данных. Эти цели очень различны и могут и будут приводить к очень разным разложениям проблемной области.
Можно сопоставить один с другим, но тогда вы столкнетесь с несоответствием импеданса, как упомянули другие, что в основном является техническим следствием различных целей двух моделей.
Jorg упомянул статью «Vietnam of computer science» в комментариях, которую стоит прочитать. Вы можете пропустить исторический материал во Вьетнаме, если вы не успели.
Не так ли распространено иметь программу OO с SQL-back-end? – ChrisC
Да, это так. Также широко распространено множество проблем. Фактически, объектно-реляционное картографирование получило широкое название как «Вьетнам компьютерных наук», потому что мы находились в этой войне десятилетиями, без конца. –
- 1. База данных и база данных
- 2. База данных Android и SQL
- 3. База данных и SQL C#
- 4. PHP и база данных SQL
- 5. База данных SQL Server или база данных на SQL Server
- 6. База данных Musicbrainz SQL
- 7. Глобальная база данных SQL
- 8. База данных SQL Query
- 9. База данных SQL TRIGGERS
- 10. Распределенная база данных SQL
- 11. SQL-база данных базы данных
- 12. База данных Javascript SQL
- 13. phpmyadmin и база данных
- 14. Приложение IOS, база поиска и база данных SQL
- 15. Python и база данных
- 16. Динамическая база данных и SQL-запросы
- 17. Единичный тест и база данных SQL Connection
- 18. Linq to SQL и база данных MySQL
- 19. База данных ASP.NET и SQL Server
- 20. База данных ClickOnce и SQL Server Compact
- 21. Azure, SQL Server и база данных
- 22. WCF Hosting и база данных SQL Server
- 23. Скребок экрана и база данных SQL
- 24. Zend Framework и база данных SQL Server
- 25. Дата объекта SQL-сервера и база данных
- 26. База данных SQL Server, wcf и WinForm
- 27. База данных MFC и SQL Server
- 28. Онлайн-хостинг и онлайн база данных SQL
- 29. База данных Golang sql открыта и закрыта
- 30. Схема и база данных в sql-сервере
Не могли бы вы представить пример «положительного» («сделать это»)? Ваш ответ является своего рода «негативным». –
* Никто еще не понял. Некоторые из самых умных людей в отрасли пробовали и провалились. Отрицательный ответ - единственный, кто искренен. Вы могли бы сказать: «Просто используйте Hibernate, и все будет хорошо», за исключением того, что этого не произойдет, и вы будете лгать. –
@ Jörg W Mittag: Некоторые люди очень успешны, что они делают, что работает? «Ни один размер, который подходит всем», всегда верен для всех проблем с архитектурой программного обеспечения. Однако некоторый намек на то, что лучше или менее рискованно или более полезно, может быть более полезным, чем повторение очевидного «ни одного размера подходит всем». –