<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Baviya Varshini V</title>
    <description>The latest articles on DEV Community by Baviya Varshini V (@baviya_varshiniv_5840bee).</description>
    <link>https://dev.to/baviya_varshiniv_5840bee</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3541833%2Fb56d4236-9760-422e-bb99-eb4713d29526.png</url>
      <title>DEV Community: Baviya Varshini V</title>
      <link>https://dev.to/baviya_varshiniv_5840bee</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/baviya_varshiniv_5840bee"/>
    <language>en</language>
    <item>
      <title>AWS Braket- AWS SERVICE</title>
      <dc:creator>Baviya Varshini V</dc:creator>
      <pubDate>Thu, 18 Dec 2025 17:20:55 +0000</pubDate>
      <link>https://dev.to/baviya_varshiniv_5840bee/aws-braket-aws-service-4h2g</link>
      <guid>https://dev.to/baviya_varshiniv_5840bee/aws-braket-aws-service-4h2g</guid>
      <description>&lt;p&gt;&lt;strong&gt;🔹 Service Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AWS Braket is a fully managed quantum computing service that lets developers, researchers, and enterprises build, test, and run quantum algorithms using real quantum hardware and high-performance simulators—all from AWS. You don’t manage quantum infrastructure; AWS provides access to multiple quantum technologies through a single API.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzumtdlyhqv0gmntdzry7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzumtdlyhqv0gmntdzry7.png" alt=" " width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 Key Features&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Multiple Quantum Hardware Providers&lt;/strong&gt;&lt;br&gt;
        Superconducting, trapped-ion, and neutral-atom devices&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Quantum Simulators&lt;/strong&gt;&lt;br&gt;
       Local simulators and managed simulators (state-vector, tensor network)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Unified SDK&lt;/strong&gt;&lt;br&gt;
      Write once, run on simulators or real QPUs&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Hybrid Workflows&lt;/strong&gt;&lt;br&gt;
     Combine classical compute (EC2) with quantum tasks&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Security &amp;amp; IAM Integration&lt;/strong&gt;&lt;br&gt;
     Native AWS IAM, VPC, encryption&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Experiment Tracking&lt;/strong&gt;&lt;br&gt;
     Job history, results, and reproducibility&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹AWS Category / Cloud Domain&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Primary Category&lt;/strong&gt;: Emerging Technologies&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud Domain:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Quantum Computing&lt;/li&gt;
&lt;li&gt;Research &amp;amp; Advanced Computing&lt;/li&gt;
&lt;li&gt;AI/ML (experimental &amp;amp; future-facing)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F970ipf66ymzlujb93uhg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F970ipf66ymzlujb93uhg.png" alt=" " width="400" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 Where It Fits in the Cloud / DevOps Lifecycle&lt;/strong&gt;&lt;br&gt;
AWS Braket fits early-stage R&amp;amp;D and experimentation phases:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Research &amp;amp; Prototyping&lt;/strong&gt;&lt;br&gt;
Explore quantum algorithms (QAOA, VQE, Grover’s, etc.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development&lt;/strong&gt;&lt;br&gt;
Develop algorithms locally → test on simulators&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Experimentation&lt;/strong&gt;&lt;br&gt;
Run workloads on real quantum hardware&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hybrid Optimization&lt;/strong&gt;&lt;br&gt;
Integrate with classical pipelines (EC2, Lambda, S3)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Future Production (Long-term)&lt;/strong&gt;&lt;br&gt;
Prepare teams for quantum-ready applications&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc4cc9rvhpkr3yd7e4ecv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc4cc9rvhpkr3yd7e4ecv.png" alt=" " width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 Programming Language / Access Methods&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Primary Language&lt;/strong&gt;&lt;br&gt;
Python (via Amazon Braket SDK)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Access Methods&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AWS Console&lt;/li&gt;
&lt;li&gt;AWS SDK (Boto3)&lt;/li&gt;
&lt;li&gt;Python Braket SDK&lt;/li&gt;
&lt;li&gt;Jupyter Notebooks (Amazon SageMaker compatible)&lt;/li&gt;
&lt;li&gt;REST APIs (indirect via SDKs)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Example (Python – Simple Quantum Circuit)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from braket.circuits import Circuit

circuit = Circuit().h(0).cnot(0, 1)
print(circuit)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdlarhy38131o832kvq8u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdlarhy38131o832kvq8u.png" alt=" " width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 Pricing Model&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AWS Braket uses a pay-as-you-go model:&lt;/p&gt;

&lt;p&gt;💰 Cost Components&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simulator Usage&lt;/strong&gt;&lt;br&gt;
Charged per task and runtime&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quantum Hardware Usage&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Charged per shot (execution)&lt;/li&gt;
&lt;li&gt;Pricing varies by hardware provider&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Storage&lt;/strong&gt;&lt;br&gt;
Results stored in Amazon S3 (standard S3 pricing)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 Why Developers Should Care&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Learn future-ready quantum skills&lt;/li&gt;
&lt;li&gt;Experiment without owning quantum hardware&lt;/li&gt;
&lt;li&gt;Strong integration with existing AWS workflows&lt;/li&gt;
&lt;li&gt;Ideal for students, researchers, and advanced engineers&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;✨ Final Takeaway&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AWS Braket is not about replacing classical computing today—it’s about preparing developers for the quantum future.If you’re curious about next-gen computing, Braket is AWS’s official gateway.&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>cloudcomputing</category>
      <category>aws</category>
      <category>science</category>
    </item>
    <item>
      <title>BMC Helix ITSM – Developer-Friendly Overview</title>
      <dc:creator>Baviya Varshini V</dc:creator>
      <pubDate>Thu, 18 Dec 2025 16:19:05 +0000</pubDate>
      <link>https://dev.to/baviya_varshiniv_5840bee/bmc-helix-itsm-developer-friendly-overview-2863</link>
      <guid>https://dev.to/baviya_varshiniv_5840bee/bmc-helix-itsm-developer-friendly-overview-2863</guid>
      <description>&lt;p&gt;&lt;strong&gt;🔹 What is BMC Helix ITSM?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BMC Helix ITSM&lt;/strong&gt; is an enterprise-grade &lt;strong&gt;IT Service Management (ITSM)&lt;/strong&gt; platform used to manage IT operations such as incidents, changes, problems, assets, and service requests.&lt;br&gt;
It is built to support modern cloud, hybrid, and on-prem environments with automation and AI capabilities.&lt;br&gt;
It follows &lt;strong&gt;ITIL best practices&lt;/strong&gt; and is widely used by large enterprises to ensure stable, reliable IT services.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2cwi0415oc9lujdeed5e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2cwi0415oc9lujdeed5e.png" alt=" " width="800" height="794"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 Key Features&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1️⃣ Core ITSM Capabilities&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Incident Management&lt;/li&gt;
&lt;li&gt;Problem Management&lt;/li&gt;
&lt;li&gt;Asset Management&lt;/li&gt;
&lt;li&gt;CMDB (Configuration Management Database)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;2️⃣ Automation &amp;amp; Intelligence&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AI-based ticket classification and routing&lt;/li&gt;
&lt;li&gt;Predictive analytics for incidents and changes&lt;/li&gt;
&lt;li&gt;Workflow automation to reduce manual effort&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;3️⃣ User Experience&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Self-service portal&lt;/li&gt;
&lt;li&gt;Digital workplace&lt;/li&gt;
&lt;li&gt;Role-based dashboards&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;4️⃣ Integration Support&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;REST APIs&lt;/li&gt;
&lt;li&gt;Integration with monitoring, CI/CD, and cloud platforms&lt;/li&gt;
&lt;li&gt;Works with DevOps and ITOM tools&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd07oomimp73ykrkvvxd7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd07oomimp73ykrkvvxd7.png" alt=" " width="800" height="614"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 How BMC Helix ITSM Fits into DevOps / DevSecOps&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;BMC Helix ITSM acts as a bridge between development, operations, and security teams.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✔ DevOps Integration&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Links incidents and change requests with CI/CD pipelines&lt;/li&gt;
&lt;li&gt;Helps track issues caused by deployments&lt;/li&gt;
&lt;li&gt;Improves collaboration between developers and operations&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;✔ DevSecOps Support&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Security incidents can be handled using the same ITSM workflows&lt;/li&gt;
&lt;li&gt;Centralized visibility of operational and security events&lt;/li&gt;
&lt;li&gt;Supports compliance and audit requirements.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8iqhcp34vvczaguey19h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8iqhcp34vvczaguey19h.png" alt=" " width="474" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 Programming Languages &amp;amp; Technology Stack&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;BMC Helix ITSM is not a developer framework, so it does not expose a single programming language.&lt;br&gt;
Internally, it is built using:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Cloud-native microservices architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fog9r9xywibj588t3at3p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fog9r9xywibj588t3at3p.png" alt=" " width="474" height="245"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Web technologies (PWA – Progressive Web App)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6lf7u8wyczotvtqqf6vp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6lf7u8wyczotvtqqf6vp.png" alt=" " width="505" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 Parent Company&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;BMC Helix ITSM is developed by BMC Helix, Inc.&lt;/li&gt;
&lt;li&gt;Originally part of BMC Software, a well-known enterprise IT solutions company.&lt;/li&gt;
&lt;li&gt;BMC Helix became a focused cloud-first brand under BMC.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;🔹 Is It Open Source or Paid?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;❌ Not Open Source&lt;br&gt;
✅ Commercial / Paid Tool&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Proprietary enterprise software&lt;/li&gt;
&lt;li&gt;Available as SaaS (cloud) or on-premises&lt;/li&gt;
&lt;li&gt;Licensed based on users and features&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;🔹 Why Developers Should Care&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Even though BMC Helix ITSM is not a coding tool:&lt;br&gt;
Developers interact with it through incident tickets, change requests, and APIs.Important for DevOps, SRE, Cloud Engineers, and Security Engineers&lt;br&gt;
Commonly used in MNCs and enterprise environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✨ Final Takeaway&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;BMC Helix ITSM is a powerful enterprise ITSM platform that ensures stable operations, while seamlessly supporting DevOps and DevSecOps workflows through automation, integration, and intelligence.&lt;/p&gt;

</description>
      <category>management</category>
      <category>tooling</category>
      <category>ai</category>
      <category>automation</category>
    </item>
    <item>
      <title>CRUD (Create, Read, Update, Delete) operations in MongoDB using a simple college student schema.</title>
      <dc:creator>Baviya Varshini V</dc:creator>
      <pubDate>Sun, 05 Oct 2025 07:50:11 +0000</pubDate>
      <link>https://dev.to/baviya_varshiniv_5840bee/crud-create-read-update-delete-operations-in-mongodb-using-a-simple-college-student-schema-3g29</link>
      <guid>https://dev.to/baviya_varshiniv_5840bee/crud-create-read-update-delete-operations-in-mongodb-using-a-simple-college-student-schema-3g29</guid>
      <description>&lt;p&gt;To gain hands-on experience in performing CRUD (Create, Read, Update, Delete) operations in MongoDB using a simple college student schema.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧱 Schema (Collection: students)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each document follows this structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "student_id": "S001",
  "name": "Santhosh",
  "age": 20,
  "department": "CSBS",
  "year": 2,
  "cgpa": 9
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;⚙️ 1️⃣ CREATE (INSERT)&lt;/strong&gt;&lt;br&gt;
Insert at least 5 student records into the students collection:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.students.insertMany([
  {
    "student_id": "S001",
    "name": "Santhosh",
    "age": 20,
    "department": "CSBS",
    "year": 2,
    "cgpa": 9
  },
  {
    "student_id": "S002",
    "name": "Baviya",
    "age": 19,
    "department": "CSE",
    "year": 1,
    "cgpa": 8.7
  },
  {
    "student_id": "S003",
    "name": "Karthik",
    "age": 21,
    "department": "ECE",
    "year": 3,
    "cgpa": 7.2
  },
  {
    "student_id": "S004",
    "name": "Anu",
    "age": 20,
    "department": "CSE",
    "year": 2,
    "cgpa": 9.3
  },
  {
    "student_id": "S005",
    "name": "Ravi",
    "age": 22,
    "department": "MECH",
    "year": 3,
    "cgpa": 6.8
  }
])

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6t5bqwn4v8hsj40wed5k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6t5bqwn4v8hsj40wed5k.png" alt=" " width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔍 2️⃣ READ (QUERY)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Find all students with CGPA &amp;gt; 8:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.students.find({ cgpa: { $gt: 8 } }).pretty()

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Find students belonging to the Computer Science department:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.students.find({ department: { $in: ["CSE", "CSBS"] } }).pretty()

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fore965phfnro4kjuhb7p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fore965phfnro4kjuhb7p.png" alt=" " width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✏️ 3️⃣ UPDATE&lt;br&gt;
(a) Update the CGPA of a specific student&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.students.updateOne(
  { student_id: "S002" },
  { $set: { cgpa: 9.1 } }
)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(b) Increase the year of study for all 3rd-year students by 1&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.students.updateMany(
  { year: 3 },
  { $inc: { year: 1 } }
)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdj7smxfv7gl2ac775ann.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdj7smxfv7gl2ac775ann.png" alt=" " width="800" height="286"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🗑️ 4️⃣ DELETE&lt;/strong&gt;&lt;br&gt;
(a) Delete one student record by student_id:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.students.deleteOne({ student_id: "S005" })

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(b) Delete all students having CGPA &amp;lt; 7.5&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.students.deleteMany({ cgpa: { $lt: 7.5 } })

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F476lclfwwf0ub6i5og8a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F476lclfwwf0ub6i5og8a.png" alt=" " width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AFTER DELETION:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foms8y8l11i11zpwotq7c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foms8y8l11i11zpwotq7c.png" alt=" " width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>database</category>
      <category>tutorial</category>
      <category>mongodb</category>
      <category>beginners</category>
    </item>
    <item>
      <title>💾 Understanding ACID Properties in Databases with SQL Examples</title>
      <dc:creator>Baviya Varshini V</dc:creator>
      <pubDate>Sun, 05 Oct 2025 06:22:14 +0000</pubDate>
      <link>https://dev.to/baviya_varshiniv_5840bee/understanding-acid-properties-in-databases-with-sql-examples-h5o</link>
      <guid>https://dev.to/baviya_varshiniv_5840bee/understanding-acid-properties-in-databases-with-sql-examples-h5o</guid>
      <description>&lt;p&gt;In this post, I’ll demonstrate &lt;strong&gt;ACID properties&lt;/strong&gt; — Atomicity, Consistency, Isolation, and Durability — using a simple &lt;strong&gt;Accounts&lt;/strong&gt; table and a few SQL commands.&lt;br&gt;&lt;br&gt;
Let’s dive in 👇&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧾 1. Table Creation&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE TABLE Accounts (
  acc_no INT PRIMARY KEY,
  name VARCHAR(50),
  balance INT CHECK (balance &amp;gt;= 0)
);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🧩 2. Insert Sample Data&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;INSERT INTO Accounts VALUES (101, 'Baviya', 3000);
INSERT INTO Accounts VALUES (102, 'Karthik', 4000);
INSERT INTO Accounts VALUES (103, 'Anu', 7000);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;⚙️ 3. Atomicity Test (All or Nothing)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Goal: Start a transaction to transfer ₹1000 from Baviya to Karthik but rollback midway — no changes should remain.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Start Transaction
START TRANSACTION;

-- Subtract 1000 from Baviya
UPDATE Accounts SET balance = balance - 1000 WHERE acc_no = 101;

-- Add 1000 to Karthik
UPDATE Accounts SET balance = balance + 1000 WHERE acc_no = 102;

-- Now ROLLBACK (cancel transaction)
ROLLBACK;

-- Check balances again
SELECT * FROM Accounts;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3a3iyfkjsycaadgcqzf5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3a3iyfkjsycaadgcqzf5.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧱 4. Consistency Test&lt;/strong&gt; (Valid State → Valid State)&lt;/p&gt;

&lt;p&gt;Goal: Try inserting invalid (negative) balance.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;INSERT INTO Accounts VALUES (104, 'InvalidUser', -500);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb51u8wo2h1xeoq0y630b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb51u8wo2h1xeoq0y630b.png" alt=" " width="800" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔒 5. Isolation Test&lt;/strong&gt; (One transaction shouldn’t see another’s uncommitted changes)&lt;br&gt;
Session 1:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;START TRANSACTION;
UPDATE Accounts SET balance = balance - 500 WHERE acc_no = 101;
-- Don’t commit yet!

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Session 2:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * FROM Accounts WHERE acc_no = 101;
COMMIT;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6993ggkvjfgeqgd8qjx3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6993ggkvjfgeqgd8qjx3.png" alt=" " width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💾 6. Durability Test (Data survives restart)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;START TRANSACTION;
UPDATE Accounts SET balance = balance + 200 WHERE acc_no = 103;
COMMIT;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * FROM Accounts WHERE acc_no = 103;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvzkj5zkgg1b1uttlkxa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvzkj5zkgg1b1uttlkxa.png" alt=" " width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We successfully verified all ACID properties:&lt;/p&gt;

</description>
      <category>database</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>sql</category>
    </item>
    <item>
      <title>💾 Transactions, Deadlocks &amp; Log-Based Recovery (Hands-on SQL Guide)</title>
      <dc:creator>Baviya Varshini V</dc:creator>
      <pubDate>Fri, 03 Oct 2025 07:29:43 +0000</pubDate>
      <link>https://dev.to/baviya_varshiniv_5840bee/transactions-deadlocks-log-based-recovery-hands-on-sql-guide-3k8a</link>
      <guid>https://dev.to/baviya_varshiniv_5840bee/transactions-deadlocks-log-based-recovery-hands-on-sql-guide-3k8a</guid>
      <description>&lt;p&gt;Databases guarantee data consistency using ACID properties.&lt;br&gt;
In this blog, we’ll explore Transactions, Deadlocks, and Log-Based Recovery with simple examples.&lt;/p&gt;

&lt;p&gt;We’ll use the following schema:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE TABLE Accounts (
    acc_no INT PRIMARY KEY,
    name VARCHAR(50),
    balance INT
);

INSERT INTO Accounts VALUES
(1, 'Alice', 1000),
(2, 'Bob', 1500),
(3, 'Charlie', 2000);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;1️⃣ Transaction – Atomicity &amp;amp; Rollback&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Atomicity ensures that a transaction is all or nothing – either all operations succeed or none are applied.&lt;br&gt;
👉 Example: Transfer 500 from Alice to Bob, but rollback before commit.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Start Transaction
BEGIN;

-- Deduct 500 from Alice
UPDATE Accounts SET balance = balance - 500 WHERE name = 'Alice';

-- Add 500 to Bob
UPDATE Accounts SET balance = balance + 500 WHERE name = 'Bob';

-- Check balances (before rollback)
SELECT * FROM Accounts;

-- Rollback the transaction
ROLLBACK;

-- Check balances again (should be unchanged)
SELECT * FROM Accounts;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ After rollback → Balances remain the same as original.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi0d2mm3lzh7c13x25rgd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi0d2mm3lzh7c13x25rgd.png" alt=" " width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2️⃣ Deadlock Simulation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A deadlock happens when two transactions hold locks that the other one needs, and neither can proceed.&lt;br&gt;
👉 Steps to simulate:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Session 1&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;BEGIN;
-- Lock Alice's account
UPDATE Accounts SET balance = balance - 100 WHERE name = 'Alice';

-- Try updating Bob (will wait because Session 2 locks it)
UPDATE Accounts SET balance = balance + 100 WHERE name = 'Bob';

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Session 2&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;BEGIN;
-- Lock Bob's account
UPDATE Accounts SET balance = balance - 100 WHERE name = 'Bob';

-- Try updating Alice (will wait, creating deadlock)
UPDATE Accounts SET balance = balance + 100 WHERE name = 'Alice';

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⚠️ At this point, the database detects a deadlock and aborts one transaction automatically.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ORA-00060: deadlock detected while waiting for resource

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3️⃣ Log-Based Recovery&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Databases maintain transaction logs (Redo &amp;amp; Undo logs) to ensure durability and recovery.&lt;br&gt;
👉 Let’s test with a transaction and rollback.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Start transaction
BEGIN;

-- Try updating Charlie's account
UPDATE Accounts SET balance = balance + 300 WHERE name = 'Charlie';

-- Rollback
ROLLBACK;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ You’ll find entries for the UNDO operation confirming rollback was recorded in the log.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flokb1l808xy4z1be1127.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flokb1l808xy4z1be1127.png" alt=" " width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1.Transactions ensure data integrity using atomicity &amp;amp; rollback.&lt;br&gt;
2.Deadlocks can occur when two sessions wait for each other’s locks – DBMS resolves them automatically.&lt;br&gt;
3.Log-based recovery makes sure that even after crashes or rollbacks, the database can restore consistency.&lt;/p&gt;

</description>
      <category>database</category>
      <category>tutorial</category>
      <category>computerscience</category>
      <category>sql</category>
    </item>
    <item>
      <title>🚀 Working with Cursors and Triggers in Oracle Live SQL</title>
      <dc:creator>Baviya Varshini V</dc:creator>
      <pubDate>Fri, 03 Oct 2025 06:52:20 +0000</pubDate>
      <link>https://dev.to/baviya_varshiniv_5840bee/working-with-cursors-and-triggers-in-oracle-live-sql-ec7</link>
      <guid>https://dev.to/baviya_varshiniv_5840bee/working-with-cursors-and-triggers-in-oracle-live-sql-ec7</guid>
      <description>&lt;p&gt;In this post, we’ll learn how to use Cursors and Triggers in Oracle SQL with simple examples.&lt;br&gt;
Let’s dive in! ⚡&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📌 1. Cursor with Condition&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A cursor in Oracle is used when you want to process query results row by row.&lt;br&gt;
👉 Example: Display employee names whose salary &amp;gt; 50,000 from the Employee table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Declare a cursor with the condition.&lt;/li&gt;
&lt;li&gt;Open the cursor.&lt;/li&gt;
&lt;li&gt;Fetch each row into a variable.&lt;/li&gt;
&lt;li&gt;Process inside a loop.&lt;/li&gt;
&lt;li&gt;Close the cursor.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;💻 Example (Oracle PL/SQL):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SET SERVEROUTPUT ON;

DECLARE
    CURSOR emp_cursor IS
        SELECT emp_name FROM Employee WHERE salary &amp;gt; 50000;
    v_emp_name Employee.emp_name%TYPE;
BEGIN
    OPEN emp_cursor;
    LOOP
        FETCH emp_cursor INTO v_emp_name;
        EXIT WHEN emp_cursor%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE('Employee: ' || v_emp_name);
    END LOOP;
    CLOSE emp_cursor;
END;
/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmirt1sbxpjgntn1vw8vy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmirt1sbxpjgntn1vw8vy.png" alt=" " width="800" height="557"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📌 2. AFTER INSERT Trigger&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A trigger in Oracle is a stored PL/SQL block that automatically executes when a specific event occurs on a table.&lt;br&gt;
👉 Example: Whenever a new student is inserted into the Students table, add a log entry in Student_Audit table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create an audit table.&lt;/li&gt;
&lt;li&gt;Write an AFTER INSERT trigger.&lt;/li&gt;
&lt;li&gt;Insert log details inside the trigger.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;💻 Example (Oracle PL/SQL):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE TABLE Students (
    student_id NUMBER PRIMARY KEY,
    student_name VARCHAR2(100)
);

CREATE TABLE Student_Audit (
    audit_id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
    student_id NUMBER,
    student_name VARCHAR2(100),
    action_date DATE DEFAULT SYSDATE
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Create the AFTER INSERT Trigger&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE OR REPLACE TRIGGER trg_after_student_insert
AFTER INSERT ON Students
FOR EACH ROW
BEGIN
    INSERT INTO Student_Audit (student_id, student_name)
    VALUES (:NEW.student_id, :NEW.student_name);
END;
/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;INSERT INTO Students (student_id, student_name) 
VALUES (1, 'Alice');

INSERT INTO Students (student_id, student_name) 
VALUES (2, 'Bob');

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Check the Audit Table&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * FROM Student_Audit;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecldaej8sxafztnep4in.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecldaej8sxafztnep4in.png" alt=" " width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cursors are useful when you need row-by-row processing.&lt;/li&gt;
&lt;li&gt;Triggers automate tasks like auditing changes.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>oracle</category>
      <category>database</category>
      <category>tutorial</category>
      <category>sql</category>
    </item>
    <item>
      <title>🚀 Understanding Indexing in Oracle (B-Tree, B+ Tree, Hash Cluster)</title>
      <dc:creator>Baviya Varshini V</dc:creator>
      <pubDate>Fri, 03 Oct 2025 05:56:51 +0000</pubDate>
      <link>https://dev.to/baviya_varshiniv_5840bee/understanding-indexing-in-oracle-b-tree-b-tree-hash-cluster-11c2</link>
      <guid>https://dev.to/baviya_varshiniv_5840bee/understanding-indexing-in-oracle-b-tree-b-tree-hash-cluster-11c2</guid>
      <description>&lt;p&gt;Indexes are one of the most important concepts in databases. They speed up queries, reduce table scans, and optimize performance. In this post, we’ll explore B-Tree, B+ Tree, and Hash Indexing (via Hash Cluster) in Oracle using Students table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📌 Step 1: Create the Students Table&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE TABLE Students (
    roll_no INT PRIMARY KEY,
    name VARCHAR2(50),
    dept VARCHAR2(10),
    cgpa NUMBER(3,2)
);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;📌 Step 2: Insert 20 Sample Records&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;INSERT INTO Students VALUES (101, 'Alice', 'CSBS', 9.1);
INSERT INTO Students VALUES (102, 'Bob', 'IT', 7.5);
INSERT INTO Students VALUES (103, 'Charlie', 'CSE', 8.6);
INSERT INTO Students VALUES (104, 'David', 'ECE', 7.9);
INSERT INTO Students VALUES (105, 'Eva', 'CSBS', 8.3);
INSERT INTO Students VALUES (106, 'Frank', 'MECH', 6.5);
INSERT INTO Students VALUES (107, 'Grace', 'EEE', 8.8);
INSERT INTO Students VALUES (108, 'Helen', 'CIVIL', 7.0);
INSERT INTO Students VALUES (109, 'Ivy', 'CSE', 8.9);
INSERT INTO Students VALUES (110, 'Jack', 'CSBS', 9.0);
INSERT INTO Students VALUES (111, 'Karan', 'IT', 7.8);
INSERT INTO Students VALUES (112, 'Leo', 'CSE', 8.1);
INSERT INTO Students VALUES (113, 'Maya', 'ECE', 8.5);
INSERT INTO Students VALUES (114, 'Nina', 'MECH', 6.8);
INSERT INTO Students VALUES (115, 'Oscar', 'EEE', 8.7);
INSERT INTO Students VALUES (116, 'Paul', 'CIVIL', 7.2);
INSERT INTO Students VALUES (117, 'Queen', 'CSBS', 9.3);
INSERT INTO Students VALUES (118, 'Raj', 'CSE', 8.0);
INSERT INTO Students VALUES (119, 'Sara', 'IT', 7.6);
INSERT INTO Students VALUES (120, 'Tom', 'CSBS', 9.2);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;📌 Step 3: B-Tree Index (on Roll Number)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Oracle’s default index type is a B-Tree index.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE INDEX idx_rollno ON Students(roll_no);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now query with the index:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * FROM Students WHERE roll_no = 110;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh7dwkupjegu8v28103s2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh7dwkupjegu8v28103s2.png" alt=" " width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📌 Step 4: B+ Tree Index (on CGPA)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;B+ Trees are used internally by Oracle when you create a normal index on numeric columns.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE INDEX idx_cgpa ON Students(cgpa);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * FROM Students WHERE cgpa &amp;gt; 8.0;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fndj9kfqppi9xwwcoy6yf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fndj9kfqppi9xwwcoy6yf.png" alt=" " width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📌 Step 5: Hash Index via Hash Cluster (on Department)&lt;/strong&gt;&lt;br&gt;
Oracle does not allow USING HASH in CREATE INDEX.&lt;br&gt;
Instead, we use a Hash Cluster.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE CLUSTER student_cluster (dept VARCHAR2(10))
SIZE 512
HASHKEYS 20;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE TABLE Students_Hash (
    roll_no INT PRIMARY KEY,
    name VARCHAR2(50),
    dept VARCHAR2(10),
    cgpa NUMBER(3,2)
) CLUSTER student_cluster(dept);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;INSERT INTO Students_Hash VALUES (101, 'Alice', 'CSBS', 9.1);
INSERT INTO Students_Hash VALUES (102, 'Bob', 'IT', 7.5);
INSERT INTO Students_Hash VALUES (103, 'Charlie', 'CSE', 8.6);
INSERT INTO Students_Hash VALUES (104, 'David', 'ECE', 7.9);
INSERT INTO Students_Hash VALUES (105, 'Eva', 'CSBS', 8.3);
INSERT INTO Students_Hash VALUES (106, 'Frank', 'MECH', 6.5);
INSERT INTO Students_Hash VALUES (107, 'Grace', 'EEE', 8.8);
INSERT INTO Students_Hash VALUES (108, 'Helen', 'CIVIL', 7.0);
INSERT INTO Students_Hash VALUES (109, 'Ivy', 'CSE', 8.9);
INSERT INTO Students_Hash VALUES (110, 'Jack', 'CSBS', 9.0);
INSERT INTO Students_Hash VALUES (111, 'Karan', 'IT', 7.8);
INSERT INTO Students_Hash VALUES (112, 'Leo', 'CSE', 8.1);
INSERT INTO Students_Hash VALUES (113, 'Maya', 'ECE', 8.5);
INSERT INTO Students_Hash VALUES (114, 'Nina', 'MECH', 6.8);
INSERT INTO Students_Hash VALUES (115, 'Oscar', 'EEE', 8.7);
INSERT INTO Students_Hash VALUES (116, 'Paul', 'CIVIL', 7.2);
INSERT INTO Students_Hash VALUES (117, 'Queen', 'CSBS', 9.3);
INSERT INTO Students_Hash VALUES (118, 'Raj', 'CSE', 8.0);
INSERT INTO Students_Hash VALUES (119, 'Sara', 'IT', 7.6);
INSERT INTO Students_Hash VALUES (120, 'Tom', 'CSBS', 9.2);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Query with Hash Access&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * FROM Students_Hash WHERE dept = 'CSBS';

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsxgibow1pcm6733sy1ao.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsxgibow1pcm6733sy1ao.png" alt=" " width="800" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔥 Conclusion&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;B-Tree Index → best for primary keys, unique lookups.&lt;/li&gt;
&lt;li&gt;B+ Tree Index → efficient for range queries (e.g., CGPA &amp;gt; 8).&lt;/li&gt;
&lt;li&gt;Hash Cluster → simulates Hash Index in Oracle for exact match lookups.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By combining these, you can optimize queries and improve performance in Oracle SQL.&lt;/p&gt;

</description>
      <category>oracle</category>
      <category>database</category>
      <category>performance</category>
      <category>sql</category>
    </item>
    <item>
      <title>📘 Database Normalization Example (1NF 3NF) with SQL in Oracle Live SQL</title>
      <dc:creator>Baviya Varshini V</dc:creator>
      <pubDate>Wed, 01 Oct 2025 15:20:50 +0000</pubDate>
      <link>https://dev.to/baviya_varshiniv_5840bee/database-normalization-example-1nf-3nf-with-sql-in-oracle-live-sql-3d1k</link>
      <guid>https://dev.to/baviya_varshiniv_5840bee/database-normalization-example-1nf-3nf-with-sql-in-oracle-live-sql-3d1k</guid>
      <description>&lt;p&gt;In this post, we’ll take a Student–Course–Instructor dataset, identify anomalies, and normalize it step by step from 1NF → 3NF, finally writing SQL queries and testing them in Oracle Live SQL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔎 The Raw Table&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We start with this table:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5efkbu2rp54el7lsolxl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5efkbu2rp54el7lsolxl.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚠️ Anomalies in the Design&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Insertion anomaly – Cannot insert a new course unless a student           enrolls.&lt;/li&gt;
&lt;li&gt;Update anomaly – Updating an instructor’s phone requires changing multiple rows.&lt;/li&gt;
&lt;li&gt;Deletion anomaly – If Priya drops DBMS, we lose Dr. Kumar’s info.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;✅ Step 1: 1NF&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The table is already in 1NF (atomic values).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE TABLE StudentCourse (
    StudentID VARCHAR2(10),
    StudentName VARCHAR2(50),
    CourseID VARCHAR2(10),
    CourseName VARCHAR2(50),
    Instructor VARCHAR2(50),
    InstructorPhone VARCHAR2(15),
    PRIMARY KEY (StudentID, CourseID)
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bu9qwf88hj3uegr7sjx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bu9qwf88hj3uegr7sjx.png" alt=" " width="800" height="608"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Step 2: 2NF&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We remove partial dependencies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;StudentID → StudentName&lt;/li&gt;
&lt;li&gt;CourseID → CourseName, Instructor, InstructorPhone&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So we split into Student, Course, Enrollment.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE TABLE Student (
    StudentID VARCHAR2(10) PRIMARY KEY,
    StudentName VARCHAR2(50)
);

CREATE TABLE Course (
    CourseID VARCHAR2(10) PRIMARY KEY,
    CourseName VARCHAR2(50),
    Instructor VARCHAR2(50),
    InstructorPhone VARCHAR2(15)
);

CREATE TABLE Enrollment (
    StudentID VARCHAR2(10),
    CourseID VARCHAR2(10),
    PRIMARY KEY (StudentID, CourseID),
    FOREIGN KEY (StudentID) REFERENCES Student(StudentID),
    FOREIGN KEY (CourseID) REFERENCES Course(CourseID)
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsmxm6bqeq4eohflzcdhp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsmxm6bqeq4eohflzcdhp.png" alt=" " width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Step 3: 3NF&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now we remove transitive dependency: InstructorPhone depends on Instructor, not directly on Course.&lt;/p&gt;

&lt;p&gt;So we create a separate Instructor table.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE TABLE Instructor (
    InstructorID NUMBER PRIMARY KEY,
    InstructorName VARCHAR2(50),
    InstructorPhone VARCHAR2(15)
);

CREATE TABLE Course (
    CourseID VARCHAR2(10) PRIMARY KEY,
    CourseName VARCHAR2(50),
    InstructorID NUMBER,
    FOREIGN KEY (InstructorID) REFERENCES Instructor(InstructorID)
);

CREATE TABLE Student (
    StudentID VARCHAR2(10) PRIMARY KEY,
    StudentName VARCHAR2(50)
);

CREATE TABLE Enrollment (
    StudentID VARCHAR2(10),
    CourseID VARCHAR2(10),
    PRIMARY KEY (StudentID, CourseID),
    FOREIGN KEY (StudentID) REFERENCES Student(StudentID),
    FOREIGN KEY (CourseID) REFERENCES Course(CourseID)
);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fai589s93uxmz5d3z1tfn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fai589s93uxmz5d3z1tfn.png" alt=" " width="800" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Insert Sample Data&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-- Instructors (manual IDs)
INSERT INTO Instructor VALUES (1, 'Dr. Kumar', '9876543210');
INSERT INTO Instructor VALUES (2, 'Dr. Mehta', '9123456780');
INSERT INTO Instructor VALUES (3, 'Dr. Rao', '9988776655');

-- Courses
INSERT INTO Course VALUES ('C101', 'DBMS', 1);
INSERT INTO Course VALUES ('C102', 'Data Mining', 2);
INSERT INTO Course VALUES ('C103', 'AI', 3);

-- Students
INSERT INTO Student VALUES ('S01', 'Arjun');
INSERT INTO Student VALUES ('S02', 'Priya');
INSERT INTO Student VALUES ('S03', 'Kiran');

-- Enrollments
INSERT INTO Enrollment VALUES ('S01', 'C101');
INSERT INTO Enrollment VALUES ('S01', 'C102');
INSERT INTO Enrollment VALUES ('S02', 'C101');
INSERT INTO Enrollment VALUES ('S03', 'C103');

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;✅ Final Query with JOINs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To list all students with their courses and instructors:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT s.StudentName, c.CourseName, i.InstructorName
FROM Enrollment e
JOIN Student s ON e.StudentID = s.StudentID
JOIN Course c ON e.CourseID = c.CourseID
JOIN Instructor i ON c.InstructorID = i.InstructorID;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7n4rwc8k90oboafgc0me.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7n4rwc8k90oboafgc0me.png" alt=" " width="800" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;We started with an unnormalized table.&lt;/li&gt;
&lt;li&gt;Identified anomalies.&lt;/li&gt;
&lt;li&gt;Converted step by step into 1NF → 2NF → 3NF.&lt;/li&gt;
&lt;li&gt;Inserted clean sample data.&lt;/li&gt;
&lt;li&gt;Wrote a JOIN query to fetch students, courses, and instructors.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This makes the database cleaner, consistent, and flexible ✅.&lt;/p&gt;

</description>
      <category>database</category>
      <category>tutorial</category>
      <category>computerscience</category>
      <category>sql</category>
    </item>
  </channel>
</rss>
