Skip to main content

Database Fundamentals

১. What is a database?

Database হলো একটি structured collection of data যেটা systematically store, manage এবং retrieve করা যায়। অর্থাৎ, data যাতে সহজে insert, update, delete, query করা যায়, সেজন্য database ব্যবহৃত হয়।

মূল বৈশিষ্ট্য:

  • Structured collection: Data একটি specific format এ organized থাকে (যেমন tables with rows and columns)
  • Systematic management: Data manipulation এবং retrieval এর জন্য mechanism প্রদান করে
  • DBMS integration: সাধারণত Database Management System দিয়ে manage করা হয়

উদাহরণ:

ধরুন আপনার company তে ১০০০ employee এর data আছে। Employee data কে Excel file এ store করতে পারেন, কিন্তু MySQL বা PostgreSQL এর মতো database ব্যবহার করলে অনেক সুবিধা পাবেন:

SELECT name, salary FROM employees WHERE department='IT';

এই query দিয়ে তাৎক্ষণিকভাবে সব IT department এর employee এবং তাদের salary retrieve করতে পারবেন।

How is a database different from a file system?

সঠিক data storage solution বেছে নেওয়ার জন্য database এবং file system এর মধ্যে পার্থক্য বোঝা জরুরি।

File System এর সীমাবদ্ধতা:

  • File system শুধুমাত্র individual files আকারে data store করে (text files, CSV files, ইত্যাদি)
  • Limited search capabilities: Files এর মধ্যে searching করা slow এবং inefficient
  • No built-in relationships: বিভিন্ন data set এর মধ্যে connection establish করা কঠিন
  • Concurrency issues: একাধিক user একই file access করলে conflict হতে পারে
  • No data integrity: Built-in validation বা consistency check নেই

Database এর সুবিধা:

  • Structured storage: Data tables, rows, columns এ organized, indexes এবং relationships সহ
  • Optimized querying: SQL এবং অন্যান্য query language দিয়ে fast, complex search করা যায়
  • Built-in concurrency control: একাধিক user একসাথে safely data access করতে পারে
  • Data integrity: Built-in validation এবং consistency mechanism আছে
  • ACID properties: Reliable transaction processing নিশ্চিত করে

What are the advantages of databases over flat files?

সুবিধাবর্ণনা
Data Integrity & ConsistencyData duplication রোধ করে এবং system জুড়ে consistency maintain করে
Advanced QueryingSQL দিয়ে complex data retrieval এবং manipulation সম্ভব
Relationshipsবিভিন্ন data entity এর মধ্যে connection establish করা যায়
SecurityUser authentication, authorization, এবং access control
Backup & RecoveryAutomated backup system এবং disaster recovery mechanism
Concurrency Controlএকাধিক user conflict ছাড়াই একসাথে কাজ করতে পারে
ScalabilityGrowing data volume এবং user load efficiently handle করতে পারে
Data ValidationBusiness rule এবং data constraint enforce করে

Examples of different types of databases (relational, NoSQL, graph)?

Modern application গুলো তাদের specific requirement অনুযায়ী বিভিন্ন ধরনের database ব্যবহার করে:

Relational Database (RDBMS)

  • Structure: Data predefined schema সহ tables এ store করা হয়
  • Query Language: SQL (Structured Query Language)
  • Use Cases: Traditional business application, financial system, e-commerce
  • Examples: MySQL, PostgreSQL, Oracle Database, SQL Server
-- Example: Relational database এ user table তৈরি করা
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

NoSQL Database

  • Structure: Flexible schema, unstructured/semi-structured data support করে
  • Types: Document, Key-Value, Column-Family, Graph
  • Use Cases: Big data, real-time web application, content management
  • Examples: MongoDB, Cassandra, CouchDB, DynamoDB
// Example: MongoDB তে document structure
{
"_id": "507f1f77bcf86cd799439011",
"name": "John Doe",
"email": "john@example.com",
"preferences": {
"theme": "dark",
"notifications": true
},
"tags": ["developer", "javascript", "nodejs"]
}

Graph Database

  • Structure: Data কে nodes এবং edges (relationships) আকারে represent করা হয়
  • Use Cases: Social network, recommendation engine, fraud detection
  • Examples: Neo4j, ArangoDB, Amazon Neptune
-- Example: Neo4j এর জন্য Cypher query
MATCH (user:User)-[:FRIENDS_WITH]->(friend:User)
WHERE user.name = "John"
RETURN friend.name, friend.age

২. What is DBMS?

DBMS (Database Management System) হলো একটি software system যা database তৈরি, maintain, এবং manage করার জন্য design করা হয়েছে। এটি user/application এবং database এর মধ্যে interface হিসেবে কাজ করে, data management এর জন্য tool এবং service প্রদান করে।

DBMS এর মূল বৈশিষ্ট্য:

  • Data Storage & Retrieval: Efficient storage mechanism এবং query processing
  • Security & Integrity: Access control, authentication, এবং data validation
  • Concurrency Control: একাধিক user একসাথে data access করতে পারে
  • Data Redundancy Reduction: Duplicate data storage কমায়
  • Consistency Maintenance: Data যেন accurate থাকে system জুড়ে তা নিশ্চিত করে
  • Backup & Recovery: Automated backup system এবং disaster recovery

Difference between DBMS and RDBMS?

বিষয়DBMSRDBMS
Data StructureFile-based storageTable-based storage with rows and columns
RelationshipsData এর মধ্যে কোনো relationship নেইTable গুলোর মধ্যে relationship support করে
NormalizationSupport করে নাFull normalization support
ACID PropertiesLimited বা কোনো ACID support নেইComplete ACID compliance
SQL SupportBasic বা limited SQLFull SQL support with advanced features
Data IntegrityBasic integrity constraintAdvanced integrity এবং validation rule
ScalabilityLimited scalabilityHigh scalability option
ExamplesFile system, XML databaseMySQL, Oracle, PostgreSQL, SQL Server

RDBMS হলো DBMS এর একটি advanced version যেখানে data table এ store করা হয় established relationship সহ, যা better data integrity এবং sophisticated querying capability প্রদান করে।

জনপ্রিয় Database Management System

Relational DBMS (RDBMS):

DatabaseUse CaseKey Feature
MySQLWeb application, e-commerceOpen-source, high performance, easy to use
Oracle DatabaseEnterprise application, bankingAdvanced feature, high reliability, scalability
Microsoft SQL ServerBusiness application, data warehousingMicrosoft ecosystem এর সাথে integration
PostgreSQLComplex application, scientific dataAdvanced SQL feature, extensibility
SQLiteMobile app, embedded systemLightweight, serverless, self-contained

NoSQL DBMS:

DatabaseTypeUse Case
MongoDBDocumentSocial media, content management, web application
CassandraColumn-familyIoT application, time-series data, high-write workload
RedisKey-valueCaching, session management, real-time analytics
Amazon DynamoDBDocument/Key-valueServerless application, gaming, mobile backend
Neo4jGraphSocial network, recommendation engine, fraud detection

Examples of DBMS used in real world?

Database কার্যত প্রতিটি modern application এবং business system চালায়:

IndustryApplicationDatabase Typeউদাহরণ
Banking & FinanceAccount management, transactionRDBMSCore banking system, payment processing
E-commerceProduct catalog, order, inventoryRDBMS + NoSQLAmazon, eBay, Shopify
Social MediaUser profile, post, relationshipNoSQL + GraphFacebook, Twitter, LinkedIn
HealthcarePatient record, medical historyRDBMSElectronic Health Record (EHR)
EducationStudent information, course managementRDBMSLearning Management System (LMS)
GovernmentCitizen database, tax systemRDBMSNational ID system, tax processing
GamingPlayer data, leaderboard, sessionNoSQLMobile game, online multiplayer
IoT & AnalyticsSensor data, real-time monitoringTime-series DBSmart city, industrial monitoring

৩.What is the role of database administrator (DBA)?

DBA হলো একজন professional যিনি database system এর overall management এর জন্য দায়ী।

DBA এর প্রধান দায়িত্ব:

১. Database Design ও Planning:

  • Database architecture design করা
  • Data modeling এবং schema design
  • Capacity planning এবং resource allocation

২. Installation ও Configuration:

  • DBMS software install এবং configure করা
  • Database instance তৈরি করা
  • System parameter tuning করা

৩. Security Management:

  • User access control এবং permission
  • Data encryption এবং security policy
  • Authentication এবং authorization setup

৪. Performance Monitoring:

  • Database performance monitoring
  • Query optimization
  • Index management
  • Resource utilization tracking

৫. Backup ও Recovery:

  • Regular backup schedule তৈরি করা
  • Disaster recovery planning
  • Data restoration procedure
  • High availability setup

৬. Maintenance Task:

  • Database update এবং patch
  • Data archiving এবং cleanup
  • Storage management
  • Log file management

৭. Troubleshooting:

  • Database issue diagnose করা
  • Performance problem solve করা
  • Data corruption recovery
  • System failure handle করা

DBA এর প্রকারভেদ:

  • System DBA - Infrastructure এবং installation focus
  • Development DBA - Application development support
  • Data DBA - Data modeling এবং design focus
  • Cloud DBA - Cloud-based database management

প্রয়োজনীয় দক্ষতা:

  • SQL এবং database technology তে expert knowledge
  • Operating system (Linux/Windows) knowledge
  • Scripting language (Python, Shell scripting)
  • Cloud platform (AWS, Azure, GCP) familiarity
  • Problem-solving এবং analytical skill

DBA একটি critical role কারণ modern organization এর সব data database এ stored থাকে এবং এর proper management ছাড়া business operation সম্ভব নয়।